[python] 추상 클래스와 추상 메소드
파이썬에서 추상 클래스는 메소드들의 이름을 정의해 주지만 구현 내용은 채우지 않는 클래스입니다. 즉, 추상 클래스는 하위 클래스에서 메소드의 구현을 강제하는 역할을 합니다.
추상 클래스 선언하기
파이썬에서 추상 클래스는 abc
모듈을 사용하여 정의합니다. abc
모듈은 ABC
클래스와 abstractmethod
데코레이터를 제공하여 추상 클래스 및 메소드를 정의할 수 있게 해줍니다.
from abc import ABC, abstractmethod
class AbstractClass(ABC):
@abstractmethod
def abstract_method(self):
pass
위 예제에서 AbstractClass
는 ABC
클래스를 상속받고, @abstractmethod
데코레이터를 사용하여 abstract_method
를 추상 메소드로 정의했습니다.
추상 클래스 사용하기
추상 클래스를 사용하려면 해당 추상 클래스를 상속받은 하위 클래스에서 추상 메소드를 반드시 구현해야 합니다.
class ConcreteClass(AbstractClass):
def abstract_method(self):
return "Implemented!"
위 코드에서 ConcreteClass
는 AbstractClass
를 상속받아 abstract_method
를 구현하였습니다.
이런 식으로 추상 클래스와 추상 메소드를 사용하여 코드의 일관성을 유지하고 프로그래머의 실수를 방지할 수 있습니다.
결론
추상 클래스와 추상 메소드를 사용하면 프로그래머가 하위 클래스에서 반드시 구현해야 하는 메소드를 명시적으로 정의할 수 있고, 이를 통해 코드의 일관성과 안정성을 높일 수 있습니다.