Discuss / Python / 编程小白的一个问题

编程小白的一个问题

Topic source

范巴i特

#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 f(): pass

首先@log等同于f=log(f)吧 那么为什么wrapper这个函数要带上参数,毕竟返回wrapper函数时还要用这个参数调用函数f,可是函数f明明没有参数啊。。。

还有一个问题,使用装饰器后,是不是调用函数f变成先装饰再调用函数wrapper呢?这个是我对这段代码的理解,不知道是不是对的。


  • 1

Reply