파이썬도 OOP 언어이므로 추상 클래스가 존재한다.
추상 클래스를 정의하려면 해당 abc모듈을 사용해야한다.
abc 모듈은 추상 베이스 클래스(ABC : Abstract Base Class)를 정의하기 위해 기초를 제공하는 모듈이다.
추상 클래스를 사용하려면 반드시 abc 모듈을 import 하고, 생성하는 추상 클래스의 메타 클래스는 ABCMeta로 지정해야 된다.
from abc import * # 추상 클래스 사용을 위해 abc module import
class Animal(metaclass=ABCMeta): # 추상 클래스 Animal 생성
@abstractmethod # 데코레이터를 사용하여 move() 메소드를 추상 메소드로 지정
def move(self):
pass
class Human(Animal):
def move(self):
print("두 발로 움직입니다.") # 추상 메소드 오버라이드
class Dog(Animal):
def move(self):
print("네 발로 움직입니다.") # 추상 메소드 오버라이드
h = Human()
h.move()
d = Dog()
d.move()
추상 클래스 생성할 때에는 꼭 metacalass=ABCMeta로 지정하고 추상 메소드를 생성할 때에는 데코레이터 @abstractmethod를 통해 지정해야 한다.
잘 읽었습니다. 좋은 정보 감사드립니다.