是否存在以下两者之间的区别:
class Example(object):
def __init__(self, prop):
self._prop = prop
def get_prop(self):
return self._prop
def set_prop(self, prop):
self._prop = prop
prop = property(get_prop, set_prop)
并且
class Example2(object):
def __init__(self, prop):
self._prop = prop
@property
def prop(self):
return self._prop
@prop.setter
def prop(self, prop):
self._prop = prop
它们似乎做着相同的事情,这不符合Python只有一种明显方法的目标。是否有一种首选方式?如果是这样,为什么?
@someDecoratorFunction
。就像许多其他东西一样,它只是对其他更复杂的语言结构的语法糖。 - pokeproperty.setter()
(以及其兄弟)装饰器。property
自2.2版本就已经存在了。 - Martijn Pieters