[python] 추상 클래스와 인터페이스
Python에서 추상 클래스와 인터페이스를 사용하여 코드를 구조화하는 방법을 알아보겠습니다.
추상 클래스
추상 클래스는 하나 이상의 추상 메서드를 포함하고 있는데, 이 메서드들은 구현되지 않은 빈 메서드입니다. 따라서 추상 클래스는 직접 인스턴스화할 수 없습니다.
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
@abstractmethod
def perimeter(self):
pass
위의 예제에서 Shape
는 추상 클래스이며 area
와 perimeter
메서드가 추상 메서드로 정의되어 있습니다. 이 추상 클래스를 상속받는 하위 클래스는 반드시 추상 메서드를 구현해야 합니다.
인터페이스
파이썬은 명시적으로 인터페이스를 지원하지는 않지만, 추상 클래스와 유사한 역할을 하는 추상 메서드만을 가진 클래스를 통해 인터페이스를 모방할 수 있습니다.
from abc import ABC, abstractmethod
class Drawable(ABC):
@abstractmethod
def draw(self):
pass
class Circle(Drawable):
def draw(self):
print("Drawing a circle")
class Square(Drawable):
def draw(self):
print("Drawing a square")
위의 예제에서 Drawable
은 추상 클래스처럼 동작하며, Circle
과 Square
클래스는 Drawable
을 상속받아 draw
메서드를 구현합니다.
결론
Python에서 추상 클래스와 인터페이스를 사용하여 코드를 구조화할 수 있습니다. 이를 통해 코드의 유지보수성과 확장성을 높일 수 있습니다.
참고 자료: Python 공식 문서