Pycharm 警告:必须实现所有抽象方法

Pycharm warning: must implement all abstract methods

代码

class A(object):
    def a(self):
        raise NotImplementedError

class B(A):
    def a(self):
        return 7

class C(B):
    pass

为什么Pycharm抱怨?

Problem synopsis      Class C must implement all abstract methods

这是一个已报告的错误 - 您可以在这里投票:https://youtrack.jetbrains.com/issue/PY-16132

正如预期的那样,python 本身承认 Class C 的实例是有效的。所以我怀疑 PyCharm.

中的错误

谷歌搜索 PyCharm Bug Tracker 让我 https://youtrack.jetbrains.com/issues/PY

果然提了票。 https://youtrack.jetbrains.com/issue/PY-16132

尚未修复

我们可以如下禁用此警告:

  • 转到 Preferences/Settings > 编辑 > 检查
  • 搜索Class必须实现所有抽象方法
  • 取消勾选,然后点击应用

我发现该警告很重要,所以我不会全局禁用它。您可以使用 # noqa 检测误报(错误警告),它应该使 PyCharm 警告静音:

class MySerializer(serializers.Serializer):  # noqa
   pass

注意:我还没有找到更窄的 warning/error 代码。