Python 3.x 为什么';t Python在调用尚未在函数定义中定义的函数时抛出NameError

Python 3.x 为什么';t Python在调用尚未在函数定义中定义的函数时抛出NameError,python-3.x,Python 3.x,假设这个最小的例子: In [1]: !cat add_ones.py def two(): return one() * 2 def one(): return 1 print(two()) 这将成功返回2 我对此感到困惑: 当我调用two()时,其中的嵌套函数one()尚未定义 为什么不打印(两个())报告: 名称错误:未定义名称一 我假设我们应该按照正确的顺序将one()放在顶部 In [1]: !cat add_ones.py def one(): re

假设这个最小的例子:

In [1]: !cat add_ones.py  
def two():
    return one() * 2
def one():
    return 1
print(two())
这将成功返回2

我对此感到困惑:
当我调用
two()
时,其中的嵌套函数
one()
尚未定义

为什么不
打印(两个())
报告:

名称错误:未定义名称一

我假设我们应该按照正确的顺序将
one()
放在顶部

In [1]: !cat add_ones.py  
def one():
    return 1
def two():
    return one() * 2

print(two())
一个不是嵌套的

如果是,它将在two函数中缩进

Python在到达最后一行之前读取并加载这两个函数

在这段代码中,函数顺序是没有意义的