是否存在用于验证函数输入的内置Python异常?

是否存在用于验证函数输入的内置Python异常?,python,exception,raise,Python,Exception,Raise,我有一个函数,它需要一个元组作为参数之一 def func(x, t # t should be a tuple of a predefined type (str, bool, str) ): ... 是否有一个内置错误适合于说明t的类型不正确,或者我应该定义自己的类型?是的,该错误正好用于这种情况: 当操作或函数应用于不适当类型的对象时引发 [……] 传递错误类型的参数(例如,当需要int时传递列表)应导致类型错误[.] 您可能希望研究如何使用,

我有一个函数,它需要一个元组作为参数之一

def func(x,
         t # t should be a tuple of a predefined type (str, bool, str)
         ):
    ...
是否有一个内置错误适合于说明t的类型不正确,或者我应该定义自己的类型?

是的,该错误正好用于这种情况:

当操作或函数应用于不适当类型的对象时引发

[……]

传递错误类型的参数(例如,当需要
int
时传递
列表
)应导致
类型错误
[.]


您可能希望研究如何使用,以便尽早捕获传入错误类型的程序员错误。例如,我们在脱毛期间检查类型提示。

是的,这通常由
类型错误
指示。或者,如果参数类型正确,但其值无效,请使用
ValueError


但是,在许多情况下(尤其是使用
TypeError
),您不必明确地提出这些问题;当您尝试执行该类型不支持的操作时,它们会自然而然地发生。

您可以使用TypeError exception。

谢谢!我喜欢类型暗示的想法,但我不确定如何通过编程方式验证类型提示(基本上,这将Python变成一种强类型语言,不是吗?)。我也在做一个小项目,所以我不确定复杂度的成本是否会被好处抵消。@NotAnAmbiTurner您应该使用外部工具静态检查提示。这些提示不会在运行时使用。谢谢:)但是有任何成熟的类型检查器吗?@NotAnAmbiTurner是成熟的,在Facebook上正在生产中使用。嗨!有什么变化吗?你交换了接受的答案,你觉得有什么我可以补充的吗?@MartijnPieters我刚刚随机运行了一次,我喜欢另一个答案的
ValueError
补充/建议。当然,这是你的选择,永远!我只是想看看。您知道,您特别询问了一个例外情况,即t的类型不正确,
ValueError
无法涵盖该例外情况。