로그인 바로가기 하위 메뉴 바로가기 본문 바로가기
난이도
입문

처음 배우는 프로그래밍 (w.파이썬)

임시 이미지 KAIST 김문주 교수
http://www.boostcourse.org/cs114/forum/86156
좋아요 3126 수강생 15627

9강_Q4 & Q5 객체 Aliasing 도저히 이해가 안가서 글 남깁니다.

Q4와 Q5가 card=Card() 위치에 따라 어떤식으로 논리가 구성되는지 모르겠습니다.

이해를 하고자, 테스트로... Q5에 대하여 아래와 같이 작성해 보았는데 결과가 너무 이상합니다.

 >>>class Card(object):

           pass

>>>cards=[]

>>>card=Card()

>>>for i in range(4):

     card.value=i

     cards.append(card)

아래와 같이 print 해보니 모두 3으로 나오네요... 왜 그런 걸까요? 

print(cards[0].value)

print(cards[1].value),

print(cards[2].value),

print(cards[3].value)

 ----------------------------------

추가로 Q7의 경우, player.clear()가 정답인데... 그럴 것 같긴 한데...

self.player.clear()가 정답이 아닌 이유에 대해서 논리적으로 설명을 할려니 잘 안되네요...

혹시 설명 가능하신 분 있으면 부탁드립니다.