参数类型不匹配的适当Python错误类型

时间:2013-09-20 15:27:12

标签: python python-3.x typeerror

我正在寻找相当于PHP的InvalidArgumentException,以便在函数获取具有不正确类型的参数时使用。我正在使用Python 3.(我对Python很新。)

ValueError documentation声明“具有正确类型但价值不合适的论点”,因此不适合在此处使用。

TypeError documentation个“当一个操作或函数应用于不适当类型的对象时引发”,因此似乎也不适用。

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

3 个答案:

答案 0 :(得分:3)

在你的情况下,我会选择TypeError

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

例如,len(42)会引发TypeError,因为len()无法应用于某个数字。

答案 1 :(得分: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'

这不是你想要的那种错误吗?

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

答案 2 :(得分:0)

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

def my_function(my_word: str):
    if type(my_word) != str:
        raise Exception("Whatever exception you want to raise!")
    pass