首页 > 解决方案 > 分配给变量的函数?

问题描述

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()

发生这种情况时, f() 的返回值被分配给变量 z 它调用函数 f() 我到目前为止了解但 z() 如何直接返回 f 返回的值?你能简要解释一下吗?

标签: pythonpython-3.xscoping

解决方案


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

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

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


推荐阅读