自写的简单版实现返回的函数名就是原始func函数名的类装饰器
程序员文章站
2022-06-01 20:20:16
...
class Decorate(object):
def __init__(self, func):
print('装饰器初始化',func.__name__)
self.__func = func
self.__name__ = Decorate.__name__
@classmethod
def set_name(cls,update_func):
cls.__name__ = update_func.__name__
print(cls.__name__)
return cls
def __call__(self, *args, **kwargs):
print('装饰器功能')
self.__func(*args, **kwargs)
def decorate(func):
@Decorate.set_name(func)
def wrapping(*args,**kwargs):
print('执行函数',func.__name__)
return func(*args,**kwargs)
return wrapping
@decorate
def test(a,b):
print(a+b)
test(2,3)
print('返回的函数名',test.__name__)
上一篇: PythonDay4---装饰器