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) 就可以了。

上一篇下一篇

猜你喜欢

热点阅读