多实例模式
class Foo:
def __init__(self):
self._ret = []
def add(self,v):
self._ret.append(v)
obj1 = Foo()
obj1.add(666)
obj2 = Foo()
print(obj2._ret) # []
单例模式
Python中文件导入会将导入文件从上至下加载执行一遍。
python中优化的机制,导入过一次之后,不会重新再加载了。
基于文件导入的特性的单例模式。
# v1.py
class Foo:
def __init__(self):
self._ret = []
def add(self,v):
self._ret.append(v)
site = Foo()
#
# v2.py
import v1
print(v1.site._ret) # [ ]
v1.site.add(666)
import v1
print(v1.site._ret) # [666]