불변이면 어떤 방식으로든 수정할 수 없는거 아님? 근데x는 튜플인데 x 막 대입하고 그러잖아
익명(anxious1657)2025-04-14 12:12
답글
불변이 튜플 내부의 값을 수정 불가능하다는거지 저 변수 자체에 새로 튜플을 할당할수없다는 소린 아님
류도그담당(211.235)2025-04-14 12:14
답글
정확한 설명
1. x가 참조하는 튜플은 이뮤터블이므로 수정 불가함
2. x가 참조하는 튜플을 이용하여 뮤터블한 리스트를 새로 생성하고 y가 참조하게 함
3. 당연히 y가 참조하는 리스트는 수정 가능함
4. y가 참조하는 리스트를 이용하여 이뮤터블한 튜플을 새로 생성하고 x가 참조하게 함
파이썬에서 대입이나 할당은 오해하기 쉬운 표현이므로 그냥 참조한다고 표현하는 것을 권장함
프갤러 1(61.101)2025-04-14 13:35
답글
원글러의 댓글에서 "x는 튜플인데"
이 부분이 정확하게 오해임. x에는 아무 성격도 없음. 참조하는 객체가 성격을 가짐.
x는 튜플 객체를 참조하는 이름일 뿐이고 참조하고 있는 객체를 대변할 뿐이지,
변수명 자체는 걍 아무것도 아님. 객체 그 자체를 지시할 수 없으니까 아무 이름이나 붙인것일뿐.
그게 뭔말임?
불변이면 어떤 방식으로든 수정할 수 없는거 아님? 근데x는 튜플인데 x 막 대입하고 그러잖아
불변이 튜플 내부의 값을 수정 불가능하다는거지 저 변수 자체에 새로 튜플을 할당할수없다는 소린 아님
정확한 설명 1. x가 참조하는 튜플은 이뮤터블이므로 수정 불가함 2. x가 참조하는 튜플을 이용하여 뮤터블한 리스트를 새로 생성하고 y가 참조하게 함 3. 당연히 y가 참조하는 리스트는 수정 가능함 4. y가 참조하는 리스트를 이용하여 이뮤터블한 튜플을 새로 생성하고 x가 참조하게 함 파이썬에서 대입이나 할당은 오해하기 쉬운 표현이므로 그냥 참조한다고 표현하는 것을 권장함
원글러의 댓글에서 "x는 튜플인데" 이 부분이 정확하게 오해임. x에는 아무 성격도 없음. 참조하는 객체가 성격을 가짐. x는 튜플 객체를 참조하는 이름일 뿐이고 참조하고 있는 객체를 대변할 뿐이지, 변수명 자체는 걍 아무것도 아님. 객체 그 자체를 지시할 수 없으니까 아무 이름이나 붙인것일뿐.
수정불가한 변수도 쉐도잉 할 수 있잖아 그거랑 비슷하게 생각하면 됨