python隐藏类中属性的3种实现方法


Posted in Python onDecember 19, 2019

方法一:

效果图一:

python隐藏类中属性的3种实现方法

代码一:

# 定义一个矩形的类
class Rectangle:
  # 定义初始化方法
  def __init__(self,width,height):
    self.hidden_width = width
    self.hidden_height = height

  # 定义获取width、height的方法
  def get_width(self):
    return self.hidden_width

  def get_height(self):
    return self.hidden_height

  # 定义修改width、height的方法
  def set_width(self,width):
    self.hidden_width = width

  def set_height(self,height):
    self.hidden_height = height

  # 定义一个获取矩形面积的方法
  def get_area(self):
    return self.hidden_width * self.hidden_height

# 创建Rectangle的实例
r_one = Rectangle(3,4)
# 输出打印 r_one的widh
print(r_one.get_width())  # 输出 3
# 输出打印 r_one的area
print(r_one.get_area())  # 输出 12

# 改变width
r_one.set_width(5)
print(r_one.get_area())   # 输出 20

方法二:

效果图二:

python隐藏类中属性的3种实现方法

代码二:

# 可以为对象的属性使用双下划线开头,__xxx
# 双下划线开头的属性,是对象的隐藏属性,隐藏属性只能在类的内部访问,无法通过对象访问
# 其实隐藏属性只不过是Python自动为属性改了一个名字
#  实际上是将名字修改为了,_类名__属性名 比如 __name -> _Person__name
class Person:
  def __init__(self,name):
    self.__name = name

  def get_name(self):
    return self.__name

  def set_name(self , name):
    self.__name = name    

p = Person('孙悟空')

# print(p.__name) # 报错:AttributeError: 'Person' object has no attribute '__name'
         #__开头的属性是隐藏属性,无法通过对象访问
p.__name = '猪八戒' # 这个设置无效,不会报错
print(p._Person__name)
p._Person__name = '沙和尚'

print(p.get_name())

方法三: 常用的

效果图三:

python隐藏类中属性的3种实现方法

代码三:

# 使用__开头的属性,实际上依然可以在外部访问,所以这种方式一般不用
#  一般会将一些私有属性(不希望被外部访问的属性)以_开头
#  一般情况下,使用_开头的属性都是私有属性,没有特殊需要不要修改私有属性
class Person:
  def __init__(self,name):
    self._name = name

  def get_name(self):
    return self._name

  def set_name(self,name):
    self._name = name

p = Person('牛一')

print(p._name)

以上这篇python隐藏类中属性的3种实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python增量循环删除MySQL表数据的方法
Sep 23 Python
Python实现的简单dns查询功能示例
May 24 Python
Python有序字典简单实现方法示例
Sep 28 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
Python3单行定义多个变量或赋值方法
Jul 12 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
pandas的连接函数concat()函数的具体使用方法
Jul 09 Python
python创建学生管理系统
Nov 22 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
Python实现汇率转换操作
May 03 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
python操作redis数据库的三种方法
Sep 10 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 #Python
关于Python中定制类的比较运算实例
Dec 19 #Python
在python中利用try..except来代替if..else的用法
Dec 19 #Python
Python字符串的修改方法实例
Dec 19 #Python
python中property和setter装饰器用法
Dec 19 #Python
python装饰器代替set get方法实例
Dec 19 #Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 #Python
You might like
php获取当前时间的毫秒数的方法
2014/01/26 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
2016/06/09 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
基于python实现查询ip地址来源
2020/06/02 Python
Python turtle库的画笔控制说明
2020/06/28 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
软件设计的目标是什么
2016/12/04 面试题
上课迟到检讨书
2014/01/19 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
房产分割协议书范文
2014/11/21 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
获奖感言怎么写
2015/07/31 职场文书
导游词之太湖
2019/10/08 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技