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 代码。
代码
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 代码。