[Python] 추상 클래스 만들기

파이썬으로 추상 클래스를 만들어보자

추상 클래스 만들기

import abc

class BaseClass(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def run(self):
        pass

## 아래처럼 
class BaseClass:
    __metaclass__ = abc.ABCMeta
    @abc.abstractmethod
    def run(self):
        pass
        
class ChildClass(BaseClass):
    def run(self):
        print("hello world!")

a = ChildClass()

위와 같이 metaclass로 해당 클래스가 추상 클래스라는 것을 명시한다.

이후 추상클래스로 쓰고 싶은 메서드에 abstractmethod 데코레이터를 달면 된다.

만약 상속받는 클래스에서 추상클래스를 구현하지 않으면 아래와 같이 에러가 뜬다.

Traceback (most recent call last):
  File "/var/task/main.py", line 12, in <module>
    a = ChildClass()
TypeError: Can't instantiate abstract class ChildClass with abstract method run