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

h7appiyu  于 2023-08-02  发布在  Python
关注(0)|答案(2)|浏览(88)

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

def identity_decorator(func):
    def wrapper():
        func()
    return wrapper

字符串

0yycz8jy

0yycz8jy1#

func是函数identity_decorator()的参数。
表达式func()的意思是“调用赋值给变量func的函数”。
装饰器将另一个函数作为参数,并返回一个新函数(定义为wrapper),该函数在运行时执行给定的函数func
Here is some information about decorators.

tgabmvqs

tgabmvqs2#

我也在想呢!您可以通过下面的示例了解它是如何工作的:

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

相关问题