由于函数 g 也是一个对象,函数名 g 就是指向函数 g 的变量,所以,最外层函数 f 可以返回变量 g,也就是函数 g 本身。这段话不明白是什么意思?
def f(): print('call f()...') # 返回函数g: return g
话有点绕,其实很简单。
去掉干扰视线的定义函数g()的部分,可以看到,函数f()返回的是g,这里的g没有指向任何地方;
加上定义函数g()的部分后,可以看到,函数f()返回的g,这里的g指向的是函数g;
def f(): print('call f()...') # 定义函数g: def g(): print('call g()...') # 返回函数g: return g
python是面向对象语言,万物皆对象。
g是一个函数对象
g()则可以理解是执行这个函数,
因此return g是返回g这个对象,return g()是返回这个函数执行后返回的对象