>>> class X: def __init__(self): self.name = "Me" def set_name(self, other): self.name = other def get_name(self): return self.name + "ABCDE" dynamicName = property(get_name, set_name) >>> inst = X() >>> inst.dynamicName 'MeABCDE' >>> inst.dynamicName = "You" >>> inst.dynamicName 'YouABCDE'
在class X中的 `dynamicName `只是一个属性而不是一个方法。
>>> class Y: def __init__(self): self.name = "Me" @property def dynamicName(self): #This would be the getter function return self.name + "ABCDE" @dynamicName.setter def set_name(self): self.name = other >>> inst = Y() >>> inst.dynamicName 'MeABCDE'
上面的代码中,dynamicName由@property修饰因此成为了一个属性
>>> type(inst.dynamicName) <class 'str'>