class Person:
def __init__(self,age):
self._age=age
@property
def age(self):
return self._age
person=Person(10)
评论
无法直接修改age属性,可以间接修改age属性。因此可以有效减少程序员的无意修改。
person.age=20 #报错,即无法直接修改age属性 person._age=30 person.age #返回30,即可以间接修改age属性可能的尝试实现
class Person:
def __init__(self,age):
self.__age=age
@property
def age(self):
return self.__age
person=Person(10)
评论
仍可以间接修改age属性
person._Person__age=20 person.age #返回20彻底的实现
class Person:
def __init__(self,age):
Person.age=property(lambda self:age)
person=Person(10)
评论
实例创建后age属性无法修改。
person.age #返回10 person.age=20 #报错



