Reports invalid definition and usages of abstract classes.

예:


from abc import abstractmethod, ABC


class Figure(ABC):

    @abstractmethod
    def do_figure(self):
        pass


class Triangle(Figure):  # Not all abstract methods are defined in 'Triangle' class
    def do_triangle(self):
        pass


Triangle()  # Cannot instantiate abstract class '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()
It also warns you if abc.abstractmethod is used in a class whose metaclass is not abc.ABCMeta:
from abc import abstractmethod


class MyClass:
    @abstractmethod  # 'MyClass' is not abstract
    def foo(self):
        ...