python - 捕获 NameError 和错误处理

标签 python error-handling nameerror

我正在编写一个接受用户输入的函数:

def func(input):

我放入了 try 和 excepts 以确保输入是我想要的类型。但是,当我输入 testInput 时,它会抛出 NameError 与“testInput”。

我理解为什么它认为 testInput 是一个变量名,而它知道“testInput”是一个字符串。

有没有一种智能的方法来捕捉这个错误?

最佳答案

NameError 通常是由 undefined variable 名引起的。如果您使用 testInput 作为变量名,即不带引号,您必须先定义它。尝试这样的事情:

testInput = "my_input_test"
func(testInput)

或者你可以只使用字符串本身作为参数:

func("my_input_test")

有时拼写错误也会导致 undefined variable 名,然后是 NameError

听起来你的 try ... except 语句在你的函数内部,错误发生在函数体执行之前,所以你无法在函数体内部捕获它。为了演示如何捕获此错误,您可以尝试以下代码。

# !!! DEMO ONLY. DON'T DO THIS.
try:
    func(testInput)
except NameError:
    # Your code here

重要:NameErrors 通常表示您需要修复您的变量/函数/类名称。使用 try ... except 来捕获它们通常是一种不好的做法,并且会导致代码困惑和无法使用。

关于python - 捕获 NameError 和错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127717/

相关文章:

python - 名称错误 : name '_name_' is not defined

spring-boot - Spring Boot @ResponseStatus 不返回 HTTP 消息

javascript - 不变的JS参数不清楚

python - 在 python 上定义命令时出现名称错误

python - 如何获取异常列表?

python - Python 解释器欢迎信息可以被抑制吗?

python - 无法从 'T5Tokenizer' 导入名称 'transformers.models.t5'

python - 如何在 python 的 Axes3D 中使用循环绘制图例?

python - NameError:名称 'now' 未定义

Python 模块导入名称错误