请在函数内部使用func()在python中的含义,例如在下面的代码中。
def identity_decorator(func):
def wrapper():
func()
return wrapper
答案 0 :(得分:11)
func
是赋予函数identity_decorator()
的参数。
表达式func()
表示"调用分配给变量func
的函数。"
装饰器将另一个函数作为参数,并返回一个新函数(定义为wrapper
),该函数在运行时执行给定函数func
。
Here是有关装饰器的一些信息。
答案 1 :(得分:0)
我也在想同样的事情!您可以通过以下示例查看其工作原理:
def make_pretty(func):
def inner():
print("I got decorated")
func()
return inner
def ordinary():
print("I am ordinary")
pretty = make_pretty(ordinary)
pretty()
Output
I got decorated
I am ordinary
现在,当您删除func()并尝试重新运行它时:
def make_pretty(func):
def inner():
print("I got decorated")
return inner
def ordinary():
print("I am ordinary")
pretty = make_pretty(ordinary)
pretty()
Output
I got decorated
您看到修饰后的函数未调用。请在这里https://www.programiz.com/python-programming/decorator