【发布时间】:2016-07-14 07:27:23
【问题描述】:
我想知道这种创建单例的方法是否正确。
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,即使这也只是你模块中的一个命名对象。 -
好吧,我不知道范围。关于“单例”,我确实可以创建更多实例,但就我而言,我不担心这一点。谢谢你的澄清:) 编辑:这个答案的一部分不是给你的,而是给@AnnetteC的,很抱歉这个错误。
标签: python import scope singleton