请问在函数内部使用时func()在python中是什么意思

kin*_*lua 6 python python-2.7

请问在函数内部使用时func()在python中是什么意思,例如在下面的代码中.

def identity_decorator(func):
    def wrapper():
        func()
    return wrapper
Run Code Online (Sandbox Code Playgroud)

khe*_*ood 14

func是函数的一个参数identity_decorator().

表达式func()表示"调用分配给变量的函数func".

装饰器将另一个函数作为参数,并返回一个新函数(定义为wrapper),该函数func在运行时执行给定的函数.

是关于装饰器的一些信息.


Ale*_*lex 7

我也在想同样的问题!您可以通过以下示例了解它是如何工作的:

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 
Run Code Online (Sandbox Code Playgroud)

现在,当您删除 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
Run Code Online (Sandbox Code Playgroud)

你看到装饰的函数没有被调用。请看这里https://www.programiz.com/python-programming/decorator