python 中单件模式

一种最为简洁的实现方案:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。