Python中装饰器为什么只是第一次执行被装饰函数的时候才调用

2025-05-10 03:19:36
推荐回答(1个)
回答1:

可以的啦#-*-coding:UTF-8-*-fromfunctoolsimportwraps__author__='lpe234'defsingleton(cls):"""装饰器实现单例模式:paramcls::return:"""instances={}@wraps(cls)def_singleton(*args,**kwargs):ifclsnotininstances:instances[cls]=cls(*args,**kwargs)returninstances[cls]return_singleton@singletonclassSelfClass(object):passdefmain():s1=SelfClass()s2=SelfClass()asserts1iss2if__name__=='__main__':main()