[python] 추상 클래스와 추상 메소드

파이썬에서 추상 클래스는 메소드들의 이름을 정의해 주지만 구현 내용은 채우지 않는 클래스입니다. 즉, 추상 클래스는 하위 클래스에서 메소드의 구현을 강제하는 역할을 합니다.

추상 클래스 선언하기

파이썬에서 추상 클래스는 abc 모듈을 사용하여 정의합니다. abc 모듈은 ABC 클래스와 abstractmethod 데코레이터를 제공하여 추상 클래스 및 메소드를 정의할 수 있게 해줍니다.

from abc import ABC, abstractmethod

class AbstractClass(ABC):
    @abstractmethod
    def abstract_method(self):
        pass

위 예제에서 AbstractClassABC 클래스를 상속받고, @abstractmethod 데코레이터를 사용하여 abstract_method를 추상 메소드로 정의했습니다.

추상 클래스 사용하기

추상 클래스를 사용하려면 해당 추상 클래스를 상속받은 하위 클래스에서 추상 메소드를 반드시 구현해야 합니다.

class ConcreteClass(AbstractClass):
    def abstract_method(self):
        return "Implemented!"

위 코드에서 ConcreteClassAbstractClass를 상속받아 abstract_method를 구현하였습니다.

이런 식으로 추상 클래스와 추상 메소드를 사용하여 코드의 일관성을 유지하고 프로그래머의 실수를 방지할 수 있습니다.

결론

추상 클래스와 추상 메소드를 사용하면 프로그래머가 하위 클래스에서 반드시 구현해야 하는 메소드를 명시적으로 정의할 수 있고, 이를 통해 코드의 일관성과 안정성을 높일 수 있습니다.