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