3

我正在寻找等效的 PHPs InvalidArgumentException 以防函数获取类型不正确的参数。我正在使用 Python 3。(而且我对 Python 很陌生。)

ValueError文档指出“具有正确类型但值不适当的参数”,因此此处不适合使用。

TypeError文档状态“在将操作或函数应用于不适当类型的对象时引发”,因此似乎也不适用。

在我的情况下使用的正确错误类型是什么?

4

3 回答 3

6

我会同意TypeError你的情况。

将函数应用于不适当类型的对象可以理解为传递了错误类型的参数(函数应用于其参数)。

例如len(42)raises TypeError,因为len()不能应用于数字。

于 2013-09-20T15:31:53.353 回答
2
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'

这不是您要寻找的那种错误吗?

请注意,类型检查是不明智的,因为如果它不支持所需的接口并且检查允许鸭子类型,它无论如何都会抛出错误。

于 2013-09-20T15:31:31.417 回答
0

这是检查类型是否不匹配或匹配的快速方法:

def my_function(my_word: str):
    if type(my_word) != str:
        raise Exception("Whatever exception you want to raise!")
    pass
于 2020-07-31T22:52:14.890 回答