首页 > 解决方案 > 我们可以使用 python 的类型提示来支持二进制运算符中的类型不匹配检测吗?

问题描述

我想做什么?Python 的类型提示对于发现某些编码错误很有用,例如,如果您不小心尝试调用带有参数错误的类型提示修饰函数。在静态类型语言中,我们还能够发现运算符不匹配中的错误,例如,如果您尝试将苹果与橙子进行比较。==在编写 python 时,是否可以扩展此类警告集以包括不匹配的运算符,例如相等运算符?

具体来说,我正在使用 PyCharm,并且希望在使用相等运算符时看到突出显示的警告“预期类型 'A',得到 'B'”。

我尝试了什么?当然,我尝试的第一件事是类型不匹配的相等运算符,PyCharm 没有给出任何反馈。接下来,我考虑使用函数调用。如前所述,函数调用已经表现出所需的行为,所以我尝试覆盖__eq__(). 当我直接使用 dunder ( a.__eq__(b)) 时,我会看到我想要的警告,但是如果我只是以通常的方式执行操作员......没有骰子。

这是仅在 dunder 上显示警告的代码屏幕截图:在此处输入图像描述

标签: pythonpycharmoperatorscompiler-warningstype-hinting

解决方案


推荐阅读