abc
모듈은 "Abstract Base Classes"의 약자로, 사용자가 인터페이스를 정의할 수 있게 해주는 기능을 제공abc
모듈의 기본 사용방법모듈 임포트: 먼저 abc
모듈을 임포트해야 합니다. 이 모듈에서 가장 중요한 두 가지는 ABC
클래스와 abstractmethod
데코레이터
추상 기반 클래스 정의: 클래스를 정의할 때 ABC
클래스를 상속받아 추상 기반 클래스(abstract base class)를 만듭니다.
추상 메서드 정의:
@abstractmethod
데코레이터를 사용해 추상 메서드로 지정아래는 abc
모듈을 사용하는 간단한 예제입니다.
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
@abstractmethod
def perimeter(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
def perimeter(self):
return 2 * (self.width + self.height)
# 이제 Rectangle 클래스는 Shape 클래스의 모든 추상 메서드(area, perimeter)를 구현해야 합니다.
# Shape 클래스의 인스턴스를 직접 생성할 수 없으며, Rectangle 같이 모든 추상 메서드를 구현한
# 자식 클래스의 인스턴스만 생성할 수 있습니다.
Shape
클래스는 추상 기반 클래스로, 두 개의 추상 메서드(area
, perimeter
)를 정의합니다. Shape
를 상속받는 모든 클래스는 이 메서드들을 구현해야 인스턴스를 생성할 수 있습니다. Rectangle
클래스는 이 두 메서드를 구현하므로 Shape
의 유효한 하위 클래스가 됩니다.abc
모듈을 사용하면 프로그램의 유연성을 높이고, 오류를 줄이며, 유지보수성을 개선할 수 있습니다.