有没有办法只调用一个类的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/