Python 带有参数的装饰器

Posted 缥缈映苍穹

tags:

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

def wrapper_out(flag): # 装饰器本身的参数
    def wrapper(fn): # 目标函数
        def inner(*args, **kwargs): # 目标函数执行需要的参数
            if flag == True:
                print("问问金老板. 行情怎么样啊")
                ret = fn(*args, **kwargs) # 在执行目标函数之前
                print("金老板骗我. 恨你")
                return ret
            else:
                ret = fn(*args, **kwargs)  # 在执行目标函数之前
                return ret
        return inner
    return wrapper
#
#
# # 语法糖 @装饰器
@wrapper_out(True) # 先执行wrapper_out(True) 返回一个装饰器   再和@拼接  @装饰器
def yue(): # 被 wrapper装饰
    print("走啊. 约不?")

yue()

  

以上是关于Python 带有参数的装饰器的主要内容,如果未能解决你的问题,请参考以下文章

python 通用装饰器,带有参数的装饰器,

基于 Python 类的装饰器,带有可以装饰方法或函数的参数

python -- 带有参数的装饰器

Python闭包和装饰器

Python 带有参数的装饰器

python使用上下文对代码片段进行计时,非装饰器