首页 > 其他 > 详细

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

时间:2019-12-13 18:24:12      阅读:87      评论:0      收藏:0      [点我收藏+]

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():
        print('内部函数',a)
    return inner()

outer('你好')

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

执行结果:

函数之前执行的代码
函数之后执行的代码
打印函数名称: outer
打印函数注释: 
    函数的作用注释:被修饰的原函数
    :param a:参数a解释
    :return:函数返回值解释
    

可以看出@wraps体现出的作用,方便了上下文环境中不去更改原来使用的函数地方的函数名

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

原文:https://www.cnblogs.com/cheng825/p/12036361.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!