python私有方法的使用注意

python私有方法的使用注意

1、使用注意

单下划线的方法只是开发者之间的约定,解释器不做任何改变。

双下化下的方法,是私有方法,解释器会改名,改名策略和私有变量相同,【_类名__方法名】。方法变量都在类的【__dict__】中可以找到。

2、实例

classMyclass:

def__init__(self,name,age=18):
self.name=name
self._age=age

def__getname(self):
returnself.name

def__getage(self):
returnself.name

a=Myclass("tom")
#print(a.__getname())#AttributeError:'Myclass'objecthasnoattribute'__getname'
#print(a.__getage())#AttributeError:'Myclass'objecthasnoattribute'__getage'

print(a.__dict__)#{'name':'tom','_age':18}
print(a.__class__.__dict__)#{'__module__':'__main__','__init__':<functionMyclass.__init__at0x01ABC468>,'_Myclass__getname':<functionMyclass.__getnameat0x01B06150>,'_Myclass__getage':<functionMyclass.__getageat0x01B064B0>,'__dict__':<attribute'__dict__'of'Myclass'objects>,'__weakref__':<attribute'__weakref__'of'Myclass'objects>,'__doc__':None}
print(a._Myclass__getname())#tom