赞
踩
单例模式(Singleton Pattern)即一个类只能拥有一个实例对象,实例化多次的结果都会指向同一个对象。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
特点:全局唯一,允许更改
优点:
缺点:
# 继承实现 class Singleton: def __new__(cls,*args,**kwargs): if not hasattr(cls, 'ins'): singletonInsObject = super().__new__(cls,*args,**kwargs) setattr(cls, 'ins', singletonInsObject) return getattr(cls, 'ins') class Category(Singleton): pass if __name__ == '__main__': i= Category() print(id(i)) c= Category() print(id(c)) # 2234442501712 # 2234442501712
def warpper(clsObject): def inner(*args , **kwargs): if not hasattr(clsObject, "ins"): singletonInsObject = clsObject(*args,**kwargs) setattr(clsObject, 'ins',singletonInsObject) return getattr(clsObject, 'ins') return inner @warpper class Category: pass if __name__ == '__main__': i= Category() print(id(i)) c= Category() print(id(c)) # 1633213381360 # 1633213381360
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。