더북(TheBook)

새로운 클래스가 기존 클래스를 상속했을 때 기존 클래스를 부모(parent) 클래스, 새로운 클래스를 자식(child) 클래스라고 부른다.

이 예제에서 HandDeck_ _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'

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.