import time
from functools import wraps
def decorator(func):
def wrapper():
print(time.time())
func()
return wrapper
@decorator
def f1():
'''
This is f1
'''
print(f1.__name__)#名字被改变,help()找不出函数说明
f1()
输出:
1583222225.2225788
wrapper
f1这个函数被装饰之后,丢失了自我,连自己的名字都忘了。
print(help(f1))
输出:
Help on function wrapper in module __main__:
wrapper()
None
用help()试着打印文档说明,却已经没有办法挽回了。
可真的没有办法了吗?难道注定就要忘记自己的名字吗?
from functools import wraps
def decorator(func):
@wraps(func)#加上这行
def wrapper():
print(time.time())
func()
return wrapper
@decorator
def f1():
'''
This is f1
'''
print(f1.__name__)#名字被改变,help()找不出函数说明
f1()
print(help(f1))
输出:
1583222549.4283857
f1
Help on function f1 in module __main__:
f1()
This is f1
None
解决!
time()函数可查阅:https://blog.csdn.net/weixin_45850939/article/details/104513485