一、python私有屬性
例如,其中__name,__age為私有屬性(一般實際使用時,不用雙下劃線,用單下劃線隱喻為私有屬性),類外訪問會報錯
class Person(object):
def __init__(self, name, age):
self.__name = name
self.__age = age
二、私有屬性如何訪問和修改
1、通過@property訪問屬性,通過@setter修改屬性
其中setter與property定義的方法名要一致
class Person(object):
def __init__(self, name, age):
self._name = name
self._age = age
# 訪問器 - getter方法
@property
def age(self):
return self._age
# 修改器 - setter方法
# 與property定義的方法名要一致
@age.setter
def age(self, age):
self._age = age
def play(self):
if self._age <= 16:
print('%s正在玩飛行棋.' % self._name)
else:
print('%s正在玩斗地主.' % self._name)
2、使用裝飾器后,如何訪問和修改屬性
訪問:用@property裝飾后,方法可以像屬性一樣訪問,例如person.age
修改:用@setter裝飾后,方法可以像屬性一樣訪問修改,例如person.age = 32
def main():
person = Person('王大錘', 12)
person.play()
person.age = 32 # setter的調用方法,直接更改屬性
print(person.age) # 加了@property后,可以用調用屬性的形式來調用方法,后面不需要加()
person.play()
if __name__ == '__main__':
main()