若python解释器在遇到错误时立即停止执行,那个么如何生成两条不同的错误消息?

若python解释器在遇到错误时立即停止执行,那个么如何生成两条不同的错误消息?,python,python-3.x,runtime-error,interpreter,Python,Python 3.x,Runtime Error,Interpreter,我有两个场景,其中判决结果导致运行时错误,但有两条不同的消息: 场景1: def a(): print(aa+bb) #aa=10 #bb=20 print(a()) Traceback (most recent call last): File "Solution.py", line 6, in <module> print(a()) File "Solution.py", line 2, in a

我有两个场景,其中判决结果导致运行时错误,但有两条不同的消息:

场景1:

def a():
    print(aa+bb)
    #aa=10
    #bb=20
    
print(a())
Traceback (most recent call last):
File "Solution.py", line 6, in <module>
    print(a())
File "Solution.py", line 2, in a
    print(aa+bb)
NameError: name 'aa' is not defined
def a():
    print(aa+bb)
    aa=10
    bb=20
    
print(a())
Traceback (most recent call last):
File "Solution.py", line 6, in <module>
    print(a())
File "Solution.py", line 2, in a
    print(aa+bb)
UnboundLocalError: local variable 'aa' referenced before assignment
场景1的判决:

def a():
    print(aa+bb)
    #aa=10
    #bb=20
    
print(a())
Traceback (most recent call last):
File "Solution.py", line 6, in <module>
    print(a())
File "Solution.py", line 2, in a
    print(aa+bb)
NameError: name 'aa' is not defined
def a():
    print(aa+bb)
    aa=10
    bb=20
    
print(a())
Traceback (most recent call last):
File "Solution.py", line 6, in <module>
    print(a())
File "Solution.py", line 2, in a
    print(aa+bb)
UnboundLocalError: local variable 'aa' referenced before assignment
场景2的判决:

def a():
    print(aa+bb)
    #aa=10
    #bb=20
    
print(a())
Traceback (most recent call last):
File "Solution.py", line 6, in <module>
    print(a())
File "Solution.py", line 2, in a
    print(aa+bb)
NameError: name 'aa' is not defined
def a():
    print(aa+bb)
    aa=10
    bb=20
    
print(a())
Traceback (most recent call last):
File "Solution.py", line 6, in <module>
    print(a())
File "Solution.py", line 2, in a
    print(aa+bb)
UnboundLocalError: local variable 'aa' referenced before assignment
回溯(最近一次呼叫最后一次):
文件“Solution.py”,第6行,在
打印(a())
文件“Solution.py”,第2行,在
打印(aa+bb)
UnboundLocalError:赋值前引用了局部变量“aa”

现在,如果解释器逐行执行代码,并在第2行遇到错误后立即停止,那么它是如何生成两条不同的错误消息的。

错误消息是一个回溯报告。在print(aa+bb)调用的第6行出现了特定错误,该错误的来源是第6行的语句,该语句要求打印a()的返回。顺便说一句,您的函数有一个ne返回,因此此调用的结果将产生一个None。这是一个很好的问题,但最终是一个重复的问题。我马上就找到复制品。简短回答:CPython将本地分配的任务作为编译步骤粘贴到表中。第一个案例没有赋值,第二个案例有赋值。做一个MCVE做得不错。@itprorh66。你在陈述一个非常明显的问题,完全忽略了这个问题。Cool@MadPhysician,等待你的评论。你能添加一个简单的python标记吗?错误消息是一个回溯报告。在print(aa+bb)调用的第6行出现了特定错误,该错误的来源是第6行的语句,该语句要求打印a()的返回。顺便说一句,您的函数有一个ne返回,因此此调用的结果将产生一个None。这是一个很好的问题,但最终是一个重复的问题。我马上就找到复制品。简短回答:CPython将本地分配的任务作为编译步骤粘贴到表中。第一个案例没有赋值,第二个案例有赋值。做一个MCVE做得不错。@itprorh66。你在陈述一个非常明显的问题,完全忽略了这个问题。酷@madpysicast,等待你的评论。你能添加一个简单的python标记吗?