关于修饰器语法糖的问题
def log(func):def wrapper():
print('开始调用eat()')
func()
print('结束调用eat()')
return wrapper
@log
def eat():
print('开始吃了')
return的wrapper后面为什么加了()直接运行就会就会出结果? 因为这样返回的就是这个函数的调用结果。 因为 wrapper() 会直接调用 wrapper,我们不希望它立刻调用 后面不加()就是返回函数所在的内存地址
加了就是执行这个函数
页:
[1]