我正在寻找等效的 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