使用python私有方法的注意事项

2024年10月13日 私有方法 Python51

使用python私有方法注意

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

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

使用python私有方法实例

class Myclass:
 
    def __init__(self,name,age=18):
        self.name = name
        self._age = age
 
    def __getname(self):
        return self.name
 
    def __getage(self):
        return self.name
 
a = Myclass("tom")
#print(a.__getname())    #   AttributeError: 'Myclass' object has no attribute '__getname'
#print(a.__getage())     #   AttributeError: 'Myclass' object has no attribute '__getage'
 
print(a.__dict__)   #   {'name': 'tom', '_age': 18}
print(a.__class__.__dict__)     #   {'__module__': '__main__', '__init__': <function Myclass.__init__ at 0x01ABC468>, '_Myclass__getname': <function Myclass.__getname at 0x01B06150>, '_Myclass__getage': <function Myclass.__getage at 0x01B064B0>, '__dict__': <attribute '__dict__' of 'Myclass' objects>, '__weakref__': <attribute '__weakref__' of 'Myclass' objects>, '__doc__': None}
print(a._Myclass__getname())    #   tom

本文链接:http://so.lmcjl.com/news/15266/

展开阅读全文