单例模式

让人想犯罪 __ 提交于 2019-11-27 14:10:08

一、基于__new__

class Single:
    _instance = None

    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(Single, cls).__new__(cls, *args, **kwargs)
        return cls._instance


class Demon(Single):

    def foo(self):
        print("Hi")


d1 = Demon()
d2 = Demon()
print(id(d1))  # 2110545800776
print(id(d2))  # 2110545800776

二、基于模块

1、重点:一个文件在一个项目中只加载一次

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!