Python 将变量作为函数调用

Python 将变量作为函数调用,python,python-3.x,Python,Python 3.x,输出 我不明白当z是一个变量时,我们怎么把它叫做函数。另外,我不明白我们是如何得到最后两行输出的 在python中,所有对象都是一级对象。您可以为任何对象指定名称和变量;这包括功能 你第一个问题的相关部分是: x= 4 z= 4 x= abc x= 4 x= 3 z= <function f.<locals>.g at 0x000000F6919EF9D8> x= abc i、 e.f返回一个函数。您可以通过以下方式分配和调用它: def f(x): def g

输出


我不明白当z是一个变量时,我们怎么把它叫做函数。另外,我不明白我们是如何得到最后两行输出的

在python中,所有对象都是一级对象。您可以为任何对象指定名称和变量;这包括功能

你第一个问题的相关部分是:

x= 4
z= 4
x= abc
x= 4
x= 3
z= <function f.<locals>.g at 0x000000F6919EF9D8>
x= abc
i、 e.f返回一个函数。您可以通过以下方式分配和调用它:

def f(x):
    def g():
        x='abc'
    return g

关于第二个问题:上面代码中的printz see将生成一行输出并调用z,即g将打印x=abc。

fx返回g,这是一个函数,因此调用z将调用g@Austin,但z=fx,那么为什么调用z不执行f中的print语句呢?为什么它要在f中执行prints语句呢?@Austin语句z=fx执行f中的所有print语句,那么为什么z不同呢?请阅读下面的答案。z只保存函数fx返回的值。该返回值恰好是一个函数。所以调用z调用该函数,该函数只包含一条print语句。
def f(x):
    def g():
        x='abc'
    return g
z = f(3)
print(z)  # <function f.<locals>.g at 0x000000F6919EF9D8>
z()