个人对特性的理解:
- 特性将类的方法伪装成字段,访问方法时,以访问字段的形式访问方法
- 方法伪装成特性之后,可以像字段一样获取值及重新设置值,重新设置值需要重新写方法
- 以下例子中,对于 one.end 系统自动执行第一个end方法,对于 one.end = 29.9 系统自动自行第二个end方法,由此可以看出,对于获取值或者重新设置值,只是系统执行的方法不同 ,而且在第二个end方法中,也可以为其他字段设置值,关键在于在这个方法中写了什么。
- 方法中没有别的参数
# 特性 # 把方法伪装成字段,以字段的形式访问 # 既然把方法伪装成字段,而字段可以重新设置值,那么如何对伪装成字段的方法重新设置值 class Information(object): def __init__(self,name,age): self.name = name self.age = age def start(self): print(self.name) @property def end(self): print(self.age) @end.setter def end(self,new_age): self.age = new_age self.name = new_age one = Information('ALEX','29') # 通过对象来访问方法 one.start() # 把方法伪装成字段,以字段的形式访问 one.end # 自动执行第一个end方法 one.end = 29.9 # 自动执行第二个end方法 one.end