python隐藏类中属性的3种实现方法
方法一:
效果图一:
代码一:
#定义一个矩形的类 classRectangle: #定义初始化方法 def__init__(self,width,height): self.hidden_width=width self.hidden_height=height #定义获取width、height的方法 defget_width(self): returnself.hidden_width defget_height(self): returnself.hidden_height #定义修改width、height的方法 defset_width(self,width): self.hidden_width=width defset_height(self,height): self.hidden_height=height #定义一个获取矩形面积的方法 defget_area(self): returnself.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
方法二:
效果图二:
代码二:
#可以为对象的属性使用双下划线开头,__xxx
#双下划线开头的属性,是对象的隐藏属性,隐藏属性只能在类的内部访问,无法通过对象访问
#其实隐藏属性只不过是Python自动为属性改了一个名字
#实际上是将名字修改为了,_类名__属性名比如__name->_Person__name
classPerson:
def__init__(self,name):
self.__name=name
defget_name(self):
returnself.__name
defset_name(self,name):
self.__name=name
p=Person('孙悟空')
#print(p.__name)#报错:AttributeError:'Person'objecthasnoattribute'__name'
#__开头的属性是隐藏属性,无法通过对象访问
p.__name='猪八戒'#这个设置无效,不会报错
print(p._Person__name)
p._Person__name='沙和尚'
print(p.get_name())
方法三:常用的
效果图三:
代码三:
#使用__开头的属性,实际上依然可以在外部访问,所以这种方式一般不用
#一般会将一些私有属性(不希望被外部访问的属性)以_开头
#一般情况下,使用_开头的属性都是私有属性,没有特殊需要不要修改私有属性
classPerson:
def__init__(self,name):
self._name=name
defget_name(self):
returnself._name
defset_name(self,name):
self._name=name
p=Person('牛一')
print(p._name)
以上这篇python隐藏类中属性的3种实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。