Discuss / Python / 这里关于warpper的定义有点绕晕了

这里关于warpper的定义有点绕晕了

Topic source

#1 Created at ... [Delete] [Delete and Lock User]
def log(func):
    def wrapper(*args, **kw):
        print('call %s():' % func.__name__)
        return func(*args, **kw)
    return wrapper
@log
def now():
    print('2015-3-25')

@log后now已经变成log(now)了,而log函数的结果是返回wrapper函数,于是now()实质上变成了wrapper(),而wrapper()的返回结果又是now(),这不是陷入死循环了吗

它log(now)的时候now定义没有变,和x=x+5是一个意思


  • 1

Reply