码迷,mamicode.com
首页 > 编程语言 > 详细

Python 中的带参装饰器

时间:2020-04-22 13:05:57      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:auth   mat   created   表示   import   div   ted   wrap   too   

"""
Created by zhusp on 2020/4/22
"""

__author__ = zhusp

from functools import wraps


# 装饰器实际就是一个函数
# 有2个特别之处
# 1. 参数是一个函数
# 2. 返回值是一个函数,

def log(info):
    def decorator(func):
        # wraps装饰器可以让被装饰的函数,执行的时候,函数名还是保持原名
        @wraps(func)
        def wrapper(*args, **kwargs):
            func(*args, **kwargs)
            print(info)

        return wrapper  # 返回不带括号的函数名,表示不执行

    return decorator


def run():
    print(run)


@log(dasdas)
def add(a, b):
    print(result:{}.format(a + b))


# run()
# 使用装饰器,等于把run传入write_operate_log,再返回wrapper
# run = write_operate_log(run)
# 执行run()函数,相当于执行wrapper()
# 相当于执行wrapper,先执行run下的逻辑,在执行print打印


add(1, 2)
print(装饰器后的执行函数名:{}.format(add.__name__))

 

Python 中的带参装饰器

标签:auth   mat   created   表示   import   div   ted   wrap   too   

原文地址:https://www.cnblogs.com/easy-test/p/12751110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!