내 코드에서 싱글 톤을 만들어야했습니다. 그래서 나는 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이 코드를 실행, 나는 다음과 같은 오류 얻을 : 나는 python
새로운 아니에요
TypeError: MyCfg() takes exactly 1 argument (0 given)
및 프로그래밍 그러나 나는 결코 이 레벨에서 python
으로 근무했습니다. 나는 정확하게 Singleton
클래스에서 일어나는 것을 이해하려고 노력하고 있었지만 알아 내지 못했습니다.
누구든지이 코드가 오류를 생성하는 이유를 설명 할 수 있습니까?
@shaktimaan 작동하지 않았습니다. 여전히 같은 오류가 발생합니다. – flashburn
'MyCfg'는 클래스가 아닌 함수입니다. 'def'를'class'로 변경하십시오. – Dunes