python 中单件模式
2020-10-09 本文已影响0人
潘旭
一种最为简洁的实现方案:
class Instance:
"""
单件模式的实现
"""
__instance = None
def __new__(cls, *args, **kwargs):
if not cls.__instance:
cls.__instance = super().__new__(cls, *args, **kwargs)
return cls.__instance
这里要特别的注意, super().__new__(cls, *args, **kwargs)
这里的 基类是 Object
所以,如果传入参数 object.__new__
会出错。改成 super().__new__(cls)
就可以了。