새로운 클래스가 기존 클래스를 상속했을 때 기존 클래스를 부모(parent) 클래스, 새로운 클래스를 자식(child) 클래스라고 부른다.
이 예제에서 Hand는 Deck의 _ _init_ _을 상속하지만, 이는 우리가 원하는 것이 아니다. Hand를 위한 _ _init_ _ 메서드는 새 카드 52장을 손에 채우는 대신 cards를 빈 리스트로 초기화해야 한다.
Hand 클래스에 _ _init_ _ 메서드를 작성하면 Deck 클래스의 _ _init_ _ 메서드를 재정의(override)하게 된다.
# class Hand: 정의
def _ _init_ _(self, label=''):
self.cards = []
self.label = label
Hand를 생성할 때 파이썬은 Deck이 아니라 Hand에 있는 _ _init_ _ 메서드를 호출하게 된다.
>>> hand = Hand('new hand')
>>> hand.cards
[]
>>> hand.label
'new hand'