在模塊代碼中初始化模塊中的對象是不好的做法嗎?Python模塊初始化
在Module.py
:
class _Foo(object):
def __init__(self):
self.x = 'Foo'
Foo = _Foo()
比用戶代碼,你可以:
>>> from Module import Foo
>>> print Foo.x
'Foo'
>>>
...而無需初始化用戶代碼Foo類。當然,只有當你不需要參數來初始化對象時纔有用。
有沒有理由不這樣做?
如果你只需要一個實例,你可以使用'@ staticmethod'和類變量 – JBernardo
@JBernardo你不能使用'staticmethod'和類變量,你可以使用'classmethod'和類變量。儘管如此,創建單身人士仍然很糟糕。 – agf
@agf我知道它看起來像java的(壞)生活方式......但它並沒有那麼糟糕。 – JBernardo