自分のコードでシングルトンを作成する必要がありました。だから私はthese instructions, method 3に従った。ここでインスタンス化中のシングルトン、メタクラス、エラー
は私が持っているコードです:
class Singleton(type):
_instances = {}
def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
return cls._instances[cls]
def MyCfg(object):
__metaclass__ = Singleton
def __init__(self, p1 = 1, p2 = 2):
# Some code
my_cfg = MyCfg()
このコードを実行whenIしかし、私は次のエラーを取得しない:
TypeError: MyCfg() takes exactly 1 argument (0 given)
は私がpython
やプログラミングに新しいものではないが、私決してこのレベルでpython
で働いた。私は正確にSingleton
クラスで何が起こるのか理解しようとしてきましたが、私は理解できません。
誰でもこのコードがエラーを生成する理由を説明できますか?
def MyCfg(object)
私はあなたが意味かなり確信している:あなたが持っている
@shaktimaan動作しませんでした。まだ同じエラーが発生しています。 – flashburn
'MyCfg'はクラスではなく関数です。 'def'を' class'に変更してください。 – Dunes