class exam:
prom=[1,2,3]
이라는 클래스가 있음
instance = exam() // < 이 클래스로 인스턴스를 만들었는데, 인스턴스 변수를 따로 선언 안했음
이때, instance.prom.append(4) 를 하고
exam.prom 으로 클래스 변수가 어떻게 변했는지 보면 클래스 변수도 [1,2,3,4] 로 바뀌거든
이게 인스턴스 변수를 따로 설정안해서 인스턴스 변수가 클래스 변수 주소를 참조해와서 그런거임?
class exam:
prom=[1,2,3]
이라는 클래스가 있음
instance = exam() // < 이 클래스로 인스턴스를 만들었는데, 인스턴스 변수를 따로 선언 안했음
이때, instance.prom.append(4) 를 하고
exam.prom 으로 클래스 변수가 어떻게 변했는지 보면 클래스 변수도 [1,2,3,4] 로 바뀌거든
이게 인스턴스 변수를 따로 설정안해서 인스턴스 변수가 클래스 변수 주소를 참조해와서 그런거임?
self
self쓰면되는건 나도 아는데 내가 물어본거에 대한 이유가 궁금한거임. 기술면접갔더니 이게 나와서
뭘 물어보는건지 모르겠음ㅇㅅㅇ
질문 그대로인데 클래스를 저렇게 만들고 인스턴스를 만들었음. 여기서 instance.prom.append(4) 를 하고 print(exam.prom) 을 하면 [1,2,3,4] 를 출력하거든 근데 instance.prom=[1,2,3,4] 를 하고 exam.prom을 하면 그대로 [1,2,3]으로 출력됨
이 차이가 어디서 오는지 모르겠음. 둘다 인스턴스 변수를 조작했는데 하나는 클래스 변수까지 바뀌고 하나는 그대로 유지되는거
주소값을 덮어씌웠으니까ㅇㅅㅇ
그래서 내가 추측하기로는 인스턴스를 만들었는데 처음에 인스턴스 변수를 생성안하면 클래스 변수랑 연결되어있음. 그래서 인스턴스 변수를 조작하면 클래스 변수까지 영향을 받는거같다는건데 맞아?
아 그럼 맞는거네?
해당 댓글은 삭제되었습니다.
객체변수말하는건데
전자는 클래스안에 proom을 참조하는거라 여기 변수=인스탠스 프롬이 돼서 인스탠스 프롬 바꾸면 클래스 프롬 같이 바뀌는데. 후자는 그냥 인스탠스 프롬에 새 리스트 할당하는거라 인스탠스프롬만 바뀜