WeniVooks

검색

파이썬 클래스 톺아보기

매직 메서드 - 컬렉션

1. 컬렉션 매직메서드 개요

파이썬의 컬렉션 매직메서드들을 사용하면 사용자 정의 클래스를 리스트나 딕셔너리처럼 동작하게 만들 수 있습니다.

2. __len__ 메서드

len() 함수 호출 시 실행되는 메서드입니다. 컬렉션의 크기를 반환합니다. return 함수를 수정해보세요.

class Stack: def __init__(self): self.items = [] def push(self, item): self.items.append(item) def __len__(self): return len(self.items) stack = Stack() stack.push(1) stack.push(2) print(len(stack)) # 출력: 2

3. __getitem__ 메서드

대괄호로 접근할 때(obj[key]) 실행되는 메서드입니다. return 함수를 수정해보세요.

class Store: def __init__(self): self.items = {'apple': 500, 'banana': 800} def __getitem__(self, key): return self.items[key] store = Store() print(store['apple']) # 출력: 500

4. __setitem__ 메서드

대괄호로 값을 할당할 때(obj[key] = value) 실행되는 메서드입니다.

class Grades: def __init__(self): self.scores = {} def __setitem__(self, student, score): if 0 <= score <= 100: self.scores[student] = score else: raise ValueError("점수는 0-100 사이여야 합니다") grades = Grades() grades['김학생'] = 85

5. __delitem__ 메서드

del 키워드로 삭제할 때 실행되는 메서드입니다.

class ShoppingCart: def __init__(self): self.items = {'apple': 2, 'banana': 3} def __delitem__(self, item): del self.items[item] cart = ShoppingCart() del cart['apple']

6. __contains__ 메서드

in 연산자 사용 시 실행되는 메서드입니다.

class Users: def __init__(self): self.names = {'admin', 'guest', 'user'} def __contains__(self, name): return name in self.names users = Users() print('admin' in users) # 출력: True print('hacker' in users) # 출력: False
{"packages":["numpy","pandas","matplotlib","lxml"]}
3.4 매직 메서드 - 숫자 표현3.6 매직 메서드 - 반복