面向对象知识补充 -- property
property 的 设置值方法
class Person(object): def __init__(self,name,age): self.name = name self.age = age # @property # def say_hi(self): # return '{self.name} {self.age}'.format(self=self) # # # @say_hi.setter # def say_hi(self,value): # print('给property包装的属性方法 设置值的时候执行我的方法') # self.name = value def _get_say_hi(self): return '{self.name} {self.age}'.format(self=self) def _set_say_hi(self, value): print('给property包装的属性方法 设置值的时候执行我的方法') self.name = value say_hi = property(_get_say_hi, _set_say_hi) if __name__ == '__main__': p1 = Person('张三',19) ret = p1.say_hi print(ret) p1.name = '李四' #普通的属性是可以修改的 # property包装的方法 不可以直接修改 需要定义 setter方法 p1.say_hi = '王五' ret2 = p1.say_hi print(ret2) print(p1.name)