分配给变量的函数?

Function assigned to a variable?

def f(x):
    def g():
        x = 'abc'
        print ('x =', x)
    def h():
        z = x
        print ('z =', z)
    x = x + 1
    print ('x =', x)
    h()
    g()
    print ('x =', x)
    return g
x = 3
z = f(x)
z()

return f() 的值被分配给变量 z 发生这种情况时它调用函数 f() 我到目前为止理解但是 z() 如何直接 returns 值 return由 f 编辑?你能简单解释一下吗?

您已经有效地创建了一个指向函数 f(x) 的指针(在变量 z 中)。因此调用 z() 会调用 f(x)。因为 f(x) returns g,z() 也会 return g,因为调用 z() 会执行 f(x).

您将 f() 调用的 返回值 分配给 z。 您 f 分配给 z

因此调用 z() 只会执行返回的内部 g 函数 - 而不是整个 f.

z = f() 上,您得到 f 的打印输出,然后 g 作为函数返回。在连续调用 z() 时,您直接执行内部 g 函数。