モジュール内のオブジェクトをモジュールコードで初期化するのは悪い習慣ですか? Module.py
でPythonモジュールの初期化
:ユーザーコードに比べ
class _Foo(object):
def __init__(self):
self.x = 'Foo'
Foo = _Foo()
、あなたはできます
>>> from Module import Foo
>>> print Foo.x
'Foo'
>>>
...ユーザーコード内のFooクラスを初期化する必要はありません。もちろん、オブジェクトを初期化するために引数を必要としない場合にのみ便利です。
これを行わない理由はありますか?
インスタンスが1つだけ必要な場合は '@ staticmethod'とクラス変数を使用できます – JBernardo
@JBernardo' staticmethod'とクラス変数を使用することはできません。 'classmethod'とクラス変数を使用できます。それはシングルトンを作成するには貧弱な方法です。 – agf
@agf私はそれがJavaの(悪い)生き方のように見えることは知っていますが、それほど悪くはありません。 – JBernardo