decorator - python中的带参数装饰器可以调用被装饰的函数中的参数不(除了全局变量)
PHP中文网
PHP中文网 2017-04-17 13:07:38
0
1
847

例子:

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?

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(1)
左手右手慢动作

你在干什么?装饰器调用里那个 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)
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!