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):
...