Django 知识补漏单例模式
单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式: 1、文件导入的形式(常用) s1.py class Foo(object): def test(self): print("123") v = Foo() #v是Foo的实例 s2.py 复制代码 from s1 import v as v1 print(v1,id(v1)) from s1 import v as v2 print(v1,id(v2)) # 文件加载的时候,第一次导入后,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,再次导入时不会再重新加载。 # 两个的内存地址是一样的 2、基于类实现的单例模式 # ======================单例模式:无法支持多线程情况=============== class Singleton(object): def __init__(self): import time time.sleep(1) @classmethod def instance(cls, *args, **kwargs): if not hasattr(Singleton, "_instance"): Singleton._instance = Singleton(*args, **kwargs) return