Python函数的装饰器修复技术(@wraps)

@wraps

  函数的装饰器修复技术,可使被装饰的函数在增加了新功能的前提下,不改变原函数名称,还继续使用原函数的注释内容;

  方便了上下文环境中不去更改原来使用的函数地方的函数名;

  使用方法

from functools import wraps

 

def 装饰器(func):    #写装饰器

    @wraps(func)    #使用装饰器修复技术

    def inner(*args,**kwargs):

        print('函数之前执行的代码')

        func(*args,**kwargs)

        print('函数之后执行的代码')

    return inner

 

@装饰器     #加装饰器

def outer(a):

    '''

    函数的作用注释:被修饰的原函数

    :param a:参数a解释

    :return:函数返回值解释

    '''

    def inner(a):

        print('内部函数',a)

    return inner

 

outer('你好')

 

print("打印函数名称:",outer.__name__)   #打印函数名称

print('打印函数注释:',outer.__doc__)   #打印函数注释


执行结果:

 
函数之前执行的代码

函数之后执行的代码

打印函数名称: outer

打印函数注释: 

    函数的作用注释:被修饰的原函数

    :param a:参数a解释

    :return:函数返回值解释 
原文地址:https://www.cnblogs.com/pythonz/p/10933676.html