哪种是使用 Python 内置函数property()的首选方式?作为装饰器还是保存到变量中?
这是一个保存property()
到变量的示例color
。
class Train(object):
def __init__(self, color='black'):
self._color = color
def get_color(self):
return self._color
def set_color(self, color):
self._color = color
def del_color(self):
del self._color
color = property(get_color, set_color, del_color)
这是相同的示例,但使用了装饰器。
class Train(object):
def __init__(self, color='black'):
self._color = color
@property
def color(self):
return self._color
@color.setter
def color(self, color):
self._color = color
@color.deleter
def color(self):
del self._color
我发现有些人喜欢对只读属性使用装饰器语法。例如。
class Train(object):
def __init__(self, color='black'):
self._color = color
@property
def color(self):
return self._color
但是在保存到变量时也可以实现相同的功能。
class Train(object):
def __init__(self, color='black'):
self._color = color
def get_color(self):
return self._color
color = property(get_color)
自PEP20声明以来,相同功能的两种方式让我感到困惑
应该有一种——最好只有一种——明显的方法来做到这一点。