python3之装饰器修复技术@wraps
原创
©著作权归作者所有:来自51CTO博客作者aaronthon的原创作品,请联系作者获取转载授权,否则将追究法律责任
普通函数
def f():
"""
这是一个用来测试装饰器修复技术的函数
"""
print("哈哈哈")
if __name__ == '__main__':
print("执行的函数名:", f.__name__)
print("函数的注释:", f.__doc__)
# 打印结果
执行的函数名: f
函数的注释: 这是一个用来测试装饰器修复技术的函数
添加装饰器
def wrapper(func):
def inner(*args, **kwargs):
print("在前面执行的代码。。。。")
func()
print("在后面执行的代码...")
return inner
@wrapper
def f():
"""
这是一个用来测试装饰器修复技术的函数
"""
print("哈哈哈")
if __name__ == '__main__':
print("执行的函数名:", f.__name__)
print("函数的注释:", f.__doc__)
# 打印结果
执行的函数名: inner
函数的注释: None
添加装饰器修复技术@wraps
from functools import wraps
def wrapper(func):
@wraps(func)
def inner(*args, **kwargs):
print("在前面执行的代码。。。。")
func()
print("在后面执行的代码...")
return inner
@wrapper
def f():
"""
这是一个用来测试装饰器修复技术的函数
"""
print("哈哈哈")
if __name__ == '__main__':
print("执行的函数名:", f.__name__)
print("函数的注释:", f.__doc__)
# 打印结果
执行的函数名: f
函数的注释: 这是一个用来测试装饰器修复技术的函数