#-*-encoding:utf-8-*- class Person(): # 只允许拥有私有的name和age属性 __slots__ = ('__name', '__age') def __init__(self,name,age): self.__name=name self.__age=age @property def name(self): return self.__name @name.setter def name(self,name): self.__name=name @property def age(self): return self.__age @age.setter def age(self, age): self.__age = age def __str__(self): return '姓名 '+self.__name+' \n年龄'+str(self.__age) def __doSomething(self): print('hello doSomething()') if __name__=='__main__': zhangsan=Person('张三',20) print(zhangsan) # 直接访问对象的私有的__age属性会出错 # print('直接访问对象的私有的__age属性'+str(zhangsan.__age)) # 访问私有属性 正确姿势 print(zhangsan._Person__age) # 直接访问对象的私有方法__doSomething方法会出错 # zhangsan.__doSomething() # 访问私有方法的正确姿势 zhangsan._Person__doSomething()
Python访问类的私有属性和私有方法的正确姿势
最新推荐文章于 2025-02-10 22:51:11 发布