>>> 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'>