python装饰器的wraps作用

Posted 扫驴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python装饰器的wraps作用相关的知识,希望对你有一定的参考价值。

不加:

from functools import wraps
def my_decorator(func):
    def wper(*args, **kwargs):
        ‘‘‘decorator‘‘‘
        print(Calling decorated function...)
        return func(*args, **kwargs)
    return wper

@my_decorator
def example():
    """Docstring"""
    print(Called example function)


print(example.__name__, example.__doc__)#wper decorator

加:

from functools import wraps
def my_decorator(func):
    @wraps(func)
    def wper(*args, **kwargs):
        ‘‘‘decorator‘‘‘
        print(Calling decorated function...)
        return func(*args, **kwargs)
    return wper
 
@my_decorator
def example():
    """Docstring""" 
    print(Called example function)


print(example.__name__, example.__doc__)#example Docstring

装饰器修复技术

以上是关于python装饰器的wraps作用的主要内容,如果未能解决你的问题,请参考以下文章

python3 装饰器修复技术@wraps到底是什么?

解决使用@wraps装饰器,但是仍然未消除装饰器产生的副作用问题

Python_装饰器复习_30

Python基础day-8[装饰器补充,迭代器(未完)]

python装饰器中@wraps作用--修复被装饰后的函数名等属性的改变

python修饰器(装饰器)以及wraps