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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。