클래스 변수와 인스턴스 변수
205
작성한 질문수 45
클래스 변수를 이용한 코드를 혼자서 작성하다가, 조금 궁금한 부분이 있어 질문드립니다.
사람이 가방에 물건을 넣는 동작을 클래스로 구현해보고자 했는데요
다음과 같이 bag 라는 클래스 변수를 선언하고, 코드를 실행해보니
james.bag와 maria.bag를 출력한 결과가 같게 나왔습니다.
각각 다른 인스턴스를 생성하여 bag에 물건을 넣었는데도 결과가 같게 나온 이유를 생각해 보았는데요...
james.put_bag('책')
이 코드를 실행하면
이 메소드에서 self에는 james가 할당되므로
결과적으로 james.bag.append('책') 이 실행될 것입니다.
그런데 코드 상에서 james 인스턴스는 bag라는 변수가 네임스페이스에 존재하지 않으므로,
그 대신 Person 클래스의 네임스페이스에서 bag 변수를 찾아 여기에 '책'을 넣었다고 생각을 하였습니다.
혹시 잘못된 부분이 있으면 설명 부탁드립니다. 감사합니다
답변 2
0
self 가 붙지 않은 클래스 변수 bag 은 공유된다는 말씀이시군요. 아래처럼 bag을 인스턴스 변수로 만들고, 초기화 해서 실행하면 두 결과가 다르게 뜰거라고 GPT가 알려주세요
class Person:
def init(self):
self.bag = [] # 인스턴스 변수로 bag 초기화
def put_bag(self, stuff):
self.bag.append(stuff)
진도미확인 (진도가 안 넘어감)
0
41
1
RuntimeError: There is no current event loop in thread 'MainThread'
0
84
1
chapter 07-01 실행 오류
0
67
1
Chapter05-04 : sum_func의 합이 이중 출력됩니다.
0
78
2
45. 병렬성 2 - Futures(5-1) wait가 의도된 대로 동작하지 않습니다.
0
93
2
멀티스레딩 - 44. 병렬성 1 - Futures(4-2)
0
71
2
chapter05_02 클로저 질문사항 !
0
53
1
LV1 설정
0
88
2
매직 메소드의 호출 방법 차이 문의
0
133
2
왜 numbers리스트를 만들때 str으로 숫자를 감싸나요?
0
96
2
스크랩핑 실습 중 Mac OS 인증서 문제
0
129
1
AsyncIO 멀티 스크랩핑 실습 예제 관련 질문
0
168
1
강의자료가 영상과 다릅니다
0
256
2
closure.cell_contents 초기화 하기 문의
0
131
2
map함수 사용 시, list변환 방법 문의
0
336
2
__mul__ 백터 * 숫지, 백터 * 백터 처리
0
144
1
del처리후 질문입니다.
0
154
1
car_list(car1,car2,car3) 인스턴스 tuple 타입 문의
0
224
1
coroutine에 대한 질문
0
243
1
제너레이터 이터레이터 질문이 있습니다.
0
250
1
atom install package search not working
0
277
1
Magic Method - Not Implemented
0
399
1
가상환경 질문!
0
404
1
병렬처리 추가 질문이 있습니다.
0
246
1





