작성
·
139
0
클래스 변수를 이용한 코드를 혼자서 작성하다가, 조금 궁금한 부분이 있어 질문드립니다.
사람이 가방에 물건을 넣는 동작을 클래스로 구현해보고자 했는데요
다음과 같이 bag 라는 클래스 변수를 선언하고, 코드를 실행해보니
james.bag와 maria.bag를 출력한 결과가 같게 나왔습니다.
각각 다른 인스턴스를 생성하여 bag에 물건을 넣었는데도 결과가 같게 나온 이유를 생각해 보았는데요...
james.put_bag('책')
이 코드를 실행하면
이 메소드에서 self에는 james가 할당되므로
결과적으로 james.bag.append('책') 이 실행될 것입니다.
그런데 코드 상에서 james 인스턴스는 bag라는 변수가 네임스페이스에 존재하지 않으므로,
그 대신 Person 클래스의 네임스페이스에서 bag 변수를 찾아 여기에 '책'을 넣었다고 생각을 하였습니다.
혹시 잘못된 부분이 있으면 설명 부탁드립니다. 감사합니다