【发布时间】:2018-09-26 20:00:39
【问题描述】:
我是一个新手 python 程序员。
我对哪个更好的属性有一些小问题。
在类中,按属性访问变量还是按变量本身访问变量的标准?
例如,在以下代码之间,baz1 和 baz2 哪个更好? baz1和baz2有区别吗?
class Foo:
def __init__(self):
self._bar = 3
@property
def bar(self):
return self._bar
def baz1(self):
return self.bar+1
def baz2(self):
return self._bar+1
【问题讨论】:
-
你为什么还要使用
property?一个简单的属性self.bar = 3不够吗? -
@property方法的目标是什么?据我所知,它是不需要的。 -
我编码它是因为它是 getter 的 Pythonic 方式。通过here,这是使其成为私有和只读变量的方法
-
你不应该关心 Python 中的隐私。可以直接对变量进行属性访问。然后,如果您需要添加某种计算/验证,您可以添加一个属性来修改内部行为,而无需修改类的外部 API。
标签: python-3.6