Not*_*bad 6 python pyqt type-hinting subclassing mypy
我有一个继承 QObject 的类。一切正常,但是当我在其上运行 mypy 时,出现错误:
"error: Class cannot subclass 'QObject' (has type 'Any')"
Run Code Online (Sandbox Code Playgroud)
此刻我完全被困住了。我一直在阅读 mypy 文档,但找不到错误所在。
这里的代码:
from PyQt5.QtCore import QObject
class ServiceLocator(QObject):
def __init__(self) -> None:
super().__init__()
...
Run Code Online (Sandbox Code Playgroud)
干杯。
eth*_*nhs 19
当 mypy 没有类的类型信息(在您的情况下是由于缺少存根)并且您已--disallow-subclassing-any打开时,会发生此错误。您可以禁用此标志,添加键入信息,或者正如您所指出的,放置一个# type: ignore来消除错误。
为了留下我如何解决这个问题的记录,我将回答我自己的问题。
正如前面的评论所暗示的,出现错误是因为mypy没有有关 的信息QObject。我尝试从此处.pyi将文件添加到mypy第三方文件夹中,或者您可以尝试从源构建。PyQt5
一切正常,但出现了很多其他错误,所以我最终决定使用:
#type: ignore
Run Code Online (Sandbox Code Playgroud)
在这一行上并消除错误,直到该库更好地支持类型提示。
干杯。