报告无效的抽象类定义和用法。

示例:


from abc import abstractmethod, ABC


class Figure(ABC):

    @abstractmethod
    def do_figure(self):
        pass


class Triangle(Figure):  # 'Triangle' 类中未定义所有 abstract 方法
    def do_triangle(self):
        pass


Triangle()  # 无法实例化抽象类 'Triangle'

应用快速修复后,IDE 为 Triangle 类实现抽象方法:


from abc import abstractmethod, ABC


class Figure(ABC):

    @abstractmethod
    def do_figure(self):
        pass


class Triangle(Figure):
    def do_figure(self):
        pass

    def do_triangle(self):
        pass


Triangle()
如果在元类不是 abc.ABCMeta 的类中使用 abc.abstractmethod,它也会发出警告:
from abc import abstractmethod


class MyClass:
    @abstractmethod  # 'MyClass' 不是抽象类
    def foo(self):
        ...