• 技术文章 >Python技术 >Python基础教程

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

    小妮浅浅小妮浅浅2021-08-10 10:11:08原创2648

    说明

    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

    以上就是python装饰器保留原函数信息的方法,希望对大家有所帮助。更多Python学习指路:python基础教程

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

    专题推荐:python装饰器
    上一篇:python中树有哪些种类 下一篇:python装饰器有哪些作用

    相关文章推荐

    • 一个例子解释python装饰器• python装饰器如何实现• 最全python装饰器的各种写法• python装饰器转换方法的注意点• python装饰器管理函数和类的注意点• Python装饰器的应用场景

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网