个人对特性的理解:
- 特性将类的方法伪装成字段,访问方法时,以访问字段的形式访问方法
- 方法伪装成特性之后,可以像字段一样获取值及重新设置值,重新设置值需要重新写方法
- 以下例子中,对于 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
