python3之装饰器修复技术@wraps

普通函数

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
    函数的注释: 这是一个用来测试装饰器修复技术的函数

上一篇:Python函数的装饰器修复技术(@wraps)


下一篇:Show 一下最新的动态属性扩展功能与键值生成器功能