第十二天 生成器再进阶
小知识点:
print(函数名.__name__)就可以打印函数的以字符串的名字的功能。
print(函数名.__doc__)打印函数文档的功能。
使用装饰器会改变函数__name__的输入。但是如果想使用原本函数的名字和文档的话,就可以使用以下模块:
from functools import wraps:
def wrapper(func):
@wraps(func) #这个功能就可以不改变调用原始函数本身的__name__和__doc的结果!
def inner (*args,**kwargs):
print('在被装饰函数之前执行的功能')
ret = func(*args,**kwargs)
print('在被装饰函数之后执行的功能')
return ret
return inner
@wrapper
def func(...):
print('函数本身的功能)
ret = func(...)
print(func.__name__)
print(func.__doc__)