面向对象之装饰器
可以通过@property的getter和setter方法修改对象的属性值。
class Person(object):
def __init__(self, name, age):
self._name = name
self._age = age
# 访问器 - getter方法
@property
def name(self):
return self._name
@property
def age(self):
return self._age
# 修改器 - setter方法
@age.setter
def age(self, age):
self._age = age
@name.setter
def name(self, name):
self._name = name
def play(self):
if self._age <= 16:
print('%s正在玩飞行棋.' % self._name)
else:
print('%s正在玩斗地主.' % self._name)
def main():
person = Person('王大锤', 12)
person.play()
person.name = '白元芳'
person.age = 22
person.play()
if __name__ == '__main__':
main()
输出:
王大锤正在玩飞行棋.
白元芳正在玩斗地主.