【发布时间】:2020-06-01 12:07:04
【问题描述】:
def amn(func):
def inner():
print("guys listen")
func()
return inner
@amn
def damn():
print("hey")
amn 是一个装饰器。函数 inner() 应该在 amn 执行时被调用。但是由于某种原因,它不起作用
【问题讨论】:
def amn(func):
def inner():
print("guys listen")
func()
return inner
@amn
def damn():
print("hey")
amn 是一个装饰器。函数 inner() 应该在 amn 执行时被调用。但是由于某种原因,它不起作用
【问题讨论】:
@amn
def foo():
pass
是一样的
def foo():
pass
foo = amn(foo)
您的amn 将原来的damn 调用为func(),然后@ 运算符将amn 的返回值赋回damn,使其成为inner。
您不应在amn 的外部调用func,而应作为inner 的一部分。你也应该看看functools.wraps。
【讨论】:
damn,看看会发生什么。