【发布时间】:2013-08-15 13:29:58
【问题描述】:
在 __init__ 方法或 getter 中定义私有类变量更好吗?似乎在调用之前不需要定义变量。
在init中定义变量:
class Foo(object):
def __init__(self):
self._bar = None
@property
def bar(self):
if self._bar is None:
self._bar = Bar()
return self._bar
@bar.setter
def bar(self, value):
self._bar = value
在 getter 中定义它:
class Foo(object):
@property
def bar(self):
if not hasattr(self, '_bar'):
self._bar = Bar()
return self._bar
@bar.setter
def bar(self, value):
self._bar = value
【问题讨论】:
-
在类定义中定义它们是什么样的?
-
您是指类属性,还是实际上是指实例属性?因为
self._bar这里是实例属性,不是类属性。 -
在
__init__()中做一个self._bar = None是定义它。 -
我的意思是实例属性。
标签: python properties