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

时间:2014-11-30 23:16:44

标签: python python-2.7

请在函数内部使用func()在python中的含义,例如在下面的代码中。

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

2 个答案:

答案 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