hwl198212 发表于 2018-8-15 11:50:12

python单例模式的装饰器

from functools import wraps  
def singleton(cls):
  
    instance = None
  
    @wraps(cls)
  
    def wrap(*args,**kwargs):
  
      nonlocal instance
  
      if instance is None:
  
            instance = cls(*args,**kwargs)    #args,kwargs是用于将参数传递到__init__中
  
      return instance
  
    return wrap
  
@singleton
  
class A:
  
    pass
  
a = A()
  
a1 = A()
  
id(a)
  
id(a1)
页: [1]
查看完整版本: python单例模式的装饰器