面向对象之装饰器

可以通过@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()
 
输出:
王大锤正在玩飞行棋.
白元芳正在玩斗地主.
 
 
posted @ 2019-10-30 20:00  数之美  阅读(118)  评论(0编辑  收藏  举报