普通函数
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修复技术的重要性。介绍了如何使用装饰器来增强函数的功能,并保持原始函数的元信息如函数名和文档字符串不变。
751

被折叠的 条评论
为什么被折叠?



