我有一个函数,它期望其中一个参数是元组
def func(x,
t # t should be a tuple of a predefined type (str, bool, str)
):
...
是否有适用于表明t类型不正确的内置错误,还是我需要定义自己的错误?
是的,TypeError
异常就是用于这种情况:
当对一个不适当类型的对象应用操作或函数时引发。
[...]
传递错误类型的参数(例如传递一个
list
而期望一个int
)应该导致TypeError
。
您可能希望了解使用类型提示来及早捕获程序员错误传入的错误类型。例如,我们在语法检查时检查类型提示。
是的,通常会使用TypeError
表示此错误。或者如果参数类型正确但其值无效,则使用ValueError
。
在许多情况下(特别是使用TypeError
时),您不必显式地引发这些错误;当您尝试执行类型不支持的操作时,它们会自然发生。
ValueError
添加/建议。 - NotAnAmbiTurnerValueError
并不覆盖此类情况。 - Martijn Pieters