知行编程网知行编程网  2022-12-06 21:30 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python装饰器如何保留原函数信息的相关知识,希望可以帮到处于编程学习途中的小伙伴

python装饰器如何保留原有函数信息


说明

1、使用装饰器时,原来的函数看起来并没有变,但是它的元信息发生了变化——此时的原来函数其实就是被包装的wrapper函数。

2.如果想保留原函数的元信息,可以使用内置的@functools.wraps(func)来实现。

@functools.wraps(func)的作用是通过update_wrapper和partial将目标函数的元信息复制到wrapper函数中。


实例

# def decorator
def decorator_with_args(*args, **kwargs):
    print('Step1: enter wrapper with args func.')
    print(args)
    print(kwargs)
 
    def decorator_func(func):
     @functools.wraps(func)
        def wrapper(*args, **kwargs):
            print('Step2: enter wrapper func.')
            return func(*args, **kwargs)
        return wrapper
    return decorator_func


本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享