我正在寻找等效的 PHPs InvalidArgumentException 以防函数获取类型不正确的参数。我正在使用 Python 3。(而且我对 Python 很陌生。)
ValueError
文档指出“具有正确类型但值不适当的参数”,因此此处不适合使用。
TypeError
文档状态“在将操作或函数应用于不适当类型的对象时引发”,因此似乎也不适用。
在我的情况下使用的正确错误类型是什么?
我正在寻找等效的 PHPs InvalidArgumentException 以防函数获取类型不正确的参数。我正在使用 Python 3。(而且我对 Python 很陌生。)
ValueError
文档指出“具有正确类型但值不适当的参数”,因此此处不适合使用。
TypeError
文档状态“在将操作或函数应用于不适当类型的对象时引发”,因此似乎也不适用。
在我的情况下使用的正确错误类型是什么?
我会同意TypeError
你的情况。
将函数应用于不适当类型的对象可以理解为传递了错误类型的参数(函数应用于其参数)。
例如len(42)
raises TypeError
,因为len()
不能应用于数字。
int([])
#>>> Traceback (most recent call last):
#>>> File "<string>", line 88, in <module>
#>>> File "", line 1, in <module>
#>>> TypeError: int() argument must be a string or a number, not 'list'
这不是您要寻找的那种错误吗?
请注意,类型检查是不明智的,因为如果它不支持所需的接口并且不检查允许鸭子类型,它无论如何都会抛出错误。
这是检查类型是否不匹配或匹配的快速方法:
def my_function(my_word: str):
if type(my_word) != str:
raise Exception("Whatever exception you want to raise!")
pass