스택의 푸시를 구현하는 데 파이썬 리스트의 append를 사용하고, 스택의 팝을 구현하는데 리스트의 pop을 사용하겠습니다. 객체 지향 관점으로 두 객체 사이의 관계를 정의해야 하는데 ‘스택은 리스트의 일종이다’라는 표현은 어울리지 않으므로 상속(inheritance)을 사용하지 않고 합성(composition)을 활용하여 구현하겠습니다. 실제 구현 코드는 다음과 같습니다.
코드 12-12 data_structure_1/stack.py ①
class Stack: def _ _init__(self): self.container = list() #1 def push(self, data): self.container.append(data) #2 def pop(self): return self.container.pop() #3 def empty(self): if not self.container: return True else: return False def peek(self): return self.container[-1] #4