实例化期间的单例、元类和错误

2024-10-04 11:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在中为我的代码创建一个单例。所以我跟着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()

但是,当我运行此代码时,会出现以下错误:

TypeError: MyCfg() takes exactly 1 argument (0 given)

我对python和编程并不陌生,但我从未在这个级别上与python合作过。我一直试图理解Singleton类中到底发生了什么,但我搞不清楚

有人能解释为什么这段代码会产生错误吗


Tags: instances代码def错误argscallmethodkwargs
1条回答
网友
1楼 · 发布于 2024-10-04 11:34:16

你有:

def MyCfg(object)

我很确定你的意思是:

class MyCfg(object)

您看到的错误(TypeError: MyCfg() takes exactly 1 argument (0 given))是因为在当前代码中,您正在定义一个名为MyCfg函数,该函数只接受一个参数(您没有提供)

相关问题 更多 >