파이썬에서는 딕셔너리(dict) 클래스를 상속받아 딕셔너리의 기본 기능을 확장하거나, 맞춤형 데이터 구조를 만들 수 있습니다. 이를 통해 딕셔너리의 key-value 구조를 유지하면서 추가적인 기능을 구현할 수 있습니다. 예를 들어, 데이터를 특정 규칙에 따라 관리하는 '데이터 카드' 클래스를 만들 수 있습니다.

예제: 딕셔너리를 상속한 DataCard 클래스

이 예제에서는 딕셔너리를 상속하여 데이터를 key-value 형식으로 저장하고, 추가적인 메서드를 통해 데이터를 검색하거나 수정할 수 있는 DataCard 클래스를 만듭니다.

# 딕셔너리 상속 클래스 정의
class DataCard(dict):
    # 데이터 카드 생성자
    def __init__(self, *args, **kwargs):
        # 딕셔너리 초기화
        super().__init__(*args, **kwargs)

    # 데이터 추가 메서드 (key: name, value: value)
    def add_item(self, name, value):
        self[name] = value

    # 이름으로 데이터 찾기
    def find_by_name(self, name):
        return self.get(name, "Item not found")

    # 이름으로 데이터 삭제하기
    def remove_by_name(self, name):
        if name in self:
            del self[name]
            return True
        return False

    # 모든 항목 출력하기
    def display_items(self):
        for name, value in self.items():
            print(f"{name}: {value}")

# 사용 예제
# 데이터 카드 객체 생성
card = DataCard()

# 데이터 추가
card.add_item("Temperature", 22)
card.add_item("Humidity", 55)

# 데이터 조회
print("All Data:")
card.display_items()

print("\nFind Temperature:", card.find_by_name("Temperature"))

# 데이터 삭제
card.remove_by_name("Humidity")
print("\nAfter Removal:")
card.display_items()

설명:

  1. DataCard 클래스는 dict 클래스를 상속받아 기본 딕셔너리처럼 동작합니다.
  2. add_item() 메서드는 새로운 데이터를 key-value 형식으로 추가합니다.
  3. find_by_name() 메서드는 주어진 키(이름)에 해당하는 값을 반환하며, 해당 키가 없을 경우 기본값으로 "Item not found"를 반환합니다.
  4. remove_by_name() 메서드는 주어진 키에 해당하는 항목을 딕셔너리에서 삭제합니다.
  5. display_items() 메서드는 딕셔너리에 저장된 모든 항목을 출력합니다.

실행 결과:

All Data:
Temperature: 22
Humidity: 55

Find Temperature: 22

After Removal:
Temperature: 22

주요 포인트:

  • DataCarddict를 상속받아, 딕셔너리의 기본적인 기능을 그대로 사용할 수 있습니다.
  • 추가적으로 데이터를 효율적으로 관리하고 처리할 수 있도록 메서드를 정의할 수 있습니다.
  • 데이터를 추가, 조회, 삭제하는 메서드를 통해 사용자가 더 편리하게 데이터를 관리할 수 있습니다.

이와 같이 파이썬 딕셔너리를 상속받아, 더 구조적이고 편리한 데이터 관리 클래스를 설계할 수 있습니다.

+ Recent posts