说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 中,当某个局部或全局名称未找到时 NameError 将被引发。 此异常仅用于非限定名称。 关联的值是一条错误信息,其中包含未找到的名称。NameError 是 Python 中的一个异常类,用于表示尝试访问一个未定义的变量或使用一个未导入的模块、函数等名称时发生的错误。
NameError 主要在尝试使用未定义的变量时引发。
try:
print(undefined_variable)
except NameError as e:
print(f"NameError: {e}")
NameError 也可能在尝试使用未导入的模块、函数等名称时引发。
try:
import undefined_module
except NameError as e:
print(f"NameError: {e}")
NameError 类提供了一些属性,其中最常用的是 args 属性,它包含一个描述错误的元组。通常,该元组中的第一个元素是一个字符串,描述异常的类型,而后面的元素是具体的错误信息。
try:
print(undefined_variable)
except NameError as e:
print(f"NameError args: {e.args}")
name 属性可以使用构造器的仅限关键字参数来设置。 它如果被设置则代表要尝试访问的变量名称。
try:
print(undefined_variable)
except NameError as e:
print(f"NameError: {e}")
print(f"未定义的名称: {e.name}")
在这个示例中,如果 undefined_variable 未定义,将触发 NameError 异常。然后,通过访问 e.name 属性,你可以获取导致异常的未定义名称,从而更好地理解错误。
在 3.10 版更改: 增加了 name 属性。
处理 NameError 的方法通常是使用 try 和 except 语句捕获异常,并在 except 块中执行相应的处理逻辑。处理逻辑可能包括定义变量、导入模块、或者提供默认值等。
try:
print(undefined_variable)
except NameError as e:
print("变量未定义,执行处理逻辑...")
# 可以执行其他处理逻辑,例如定义变量或提供默认值
NameError 提示你的程序尝试访问一个不存在的名称,这可能是由于拼写错误、作用域问题、未导入模块等原因引起的。在处理 NameError 时,通常需要检查代码中使用的名称,确保它们已经定义或导入。
更新时间:2024-04-06 09:39:50 标签:python 异常 名称 标识符