zoukankan      html  css  js  c++  java
  • 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:函数返回值解释 
  • 相关阅读:
    js判断undefined类型
    js replace 全部替换
    第五次作业--原型设计
    第三次作业--团队展示
    第二次作业——数独终盘
    软件工程实践2017第一次作业
    课堂作业2
    课堂作业1
    第四次作业 计算器第二步
    第三次作业
  • 原文地址:https://www.cnblogs.com/pythonz/p/10933676.html
Copyright © 2011-2022 走看看