我正在使用以下代码在 python 中实例化一个单例:
class Singleton(type):
def __init__(cls, name, bases, dic):
super(Singleton, cls).__init__(name, bases, dic)
cls.instance = None
def __call__(cls, *args, **kwargs):
if cls.instance is None:
if DEBUG:
print("Creating NEW Orchestrator instance")
else:
if DEBUG:
print("Using EXISTING Orchestrator instance")
cls.instance = super(Singleton, cls).__call__(*args, **kwargs)
return cls.instance
初始化看起来像这样:
def __init__(self, arg=None):
...
当我实例化对象时,它似乎不接受这个论点:
Obj = Object("parameter")
arg 不等于"parameter"
。它是无。
我认为这是将 *args 传递给call的目的。第一次实例化单例时如何传递参数?