次のコードを使用して、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に渡す目的だと思いました。シングルトンを最初にインスタンス化するときに引数を渡すにはどうすればよいですか?