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在到达最后一行之前读取并加载这两个函数
在这段代码中,函数顺序是没有意义的