有没有办法只调用一个类的init()方法一次。或者如何在从类创建对象时禁用init()的调用?

最佳答案

如果您想要一个singleton,其中一个类只有一个实例,那么您可以创建一个decorator,如下所示:

def singleton(cls):
    instances = {}
    def getinstance():
        if cls not in instances:
            instances[cls] = cls()
        return instances[cls]
    return getinstance

@singleton
class MyClass:
    pass

Try it out:
>>> a = MyClass()
>>> b = MyClass()
>>> a == b
True

关于python - Python仅调用__init __()方法一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7932093/

10-13 07:21