玩蛇网提供最新Python编程技术信息以及Python资源下载!

请问Python带参数装饰器,如何调用该函数中参数部分

例子:

def lo(func0, *args0, **kwargs0):
    def _wrapper(func):
        def wrapper(*args, **kwargs):
            func(*args, **kwargs)
            func0(*args0, **kwargs0)
        return wrapper
    return _wrapper


def f1(a):
    print a+1

@lo(f1, a)
def f(a):
    print a

f(1)

如何才能让装饰器lo调用函数f的参数a?
Python中的带参数装饰器可以调用被装饰的函数中的参数不(除了全局变量)

你在干什么?装饰器调用里那个 a 没有定义啊。不太明白你想干什么,参见X-Y 问题

你是想要这个么?

def lo(func0):
    def _wrapper(func):
        def wrapper(*args, **kwargs):
            func(*args, **kwargs)
            func0(*args, **kwargs)
        return wrapper
    return _wrapper

def f1(a):
    print(a+1)

@lo(f1)
def f(a):
    print(a)

f(1)

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19637.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月17日 - 17时00分12秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules