类之特性

个人对特性的理解:

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

 

原文地址:https://www.cnblogs.com/liyqiang/p/6243015.html