シングルトンを作成するためのこのアプローチが正しいかどうかは疑問でした。シングルトンを作成するには?
my_class.py
class MyClass(object):
def a_method(self):
print("Hello World")
...
MY_CLASS_SINGLETON = MyClass()
別のモジュール:
from my_class import MY_CLASS_SINGLETON
if __name__ == "__main__":
MY_CLASS_SINGLETON.a_method()
だから、このコードは私のために働いているが、それは他で使用される前に、ガベージコレクタがMY_CLASS_SINGLETON
インスタンスを破壊することができれば、私の不思議があります最終的にはmy_class.py
モジュール内の一時変数にすぎません。
「一時変数」ではありません。あなたのモジュールで定義されている名前です。 Pythonはまた、あなたのモジュール内の名前付きオブジェクトでも、MyClassをガベージコレクションするつもりはありません。 – deceze
[OK]を、私は範囲について知りませんでした。そして「シングルトン」については、もっと多くのインスタンスを作成することは可能ですが、私の場合はこれについて心配しません。しかし、明確化のためにありがとう:) 編集:この回答の一部はあなたのためではありませんでしたが、@AnnetteC、confucionのために申し訳ありません。 –
可能な複製[Pythonでシングルトンを定義する簡単で洗練された方法はありますか?](http://stackoverflow.com/questions/31875/is-there-a-simple-elegant-way-to-define-singletons- in-python) – pat