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是一个意思
Sign in to make a reply
○
@log后now已经变成log(now)了,而log函数的结果是返回wrapper函数,于是now()实质上变成了wrapper(),而wrapper()的返回结果又是now(),这不是陷入死循环了吗