1. 모든 문자는 변경불가능(immutable)
다음과 같은 코드를 살펴보면

여기서 id()는 변수의 주소를 구하는 함수
word안에 'math'가 들어간 다음에 다시 word에 'test'가 들어가면서 word에 들어간 문자열이 변경되는거 아니냐??
>> 이건 변경된게 아니라 'math'는 사라지고 'test'라는 문자열로 새로 word에 덮어씌운거
2. 파이썬의 변수 저장방식
파이썬은 변수에 값 'math'가 들어가는게 아니라 그것을 가리키는 주소가 들어간다고함
이건 마치 사물함에 물건을 넣어놓고 사물함 번호만 기억해놓는 것 과 같다
즉 값(물건)을 가리키는 주소(사물함)을 외워놓고 값(물건)이 필요하면 주소(사물함)를 통해 가져옴
실제로는 주소 바꿔치기

3. 주소를 통한 값 호출
그렇다면 주소를 통해 값을 호출할 수 있나??
주소가 남아있다면, 주소가 값을 가리키고 주소를 통해 값을 가져온다고하면..
주소를 안다면 값을 가져와야 맞는거 아닌가?

ctypes 모듈을 이용해서 위와 같이 주소를 통해 값을 가져올 수 있다
4. 변경불가능하다는 것은?
문자열이 변경불가능하다는 것은.. 리스트는 index로 a[i] = 3처럼 i번째 원소를 쉽게 바꿀 수 있는데
문자열은 a[i] = 'b'하면 변경불가능하다고 에러나옴

참고
https://stackoverflow.com/questions/1396668/get-object-by-id
728x90
'프로그래밍 > Python' 카테고리의 다른 글
객체 지향 프로그래밍이란 2편 -객체는 무엇인가- (0) | 2022.07.30 |
---|---|
객체지향 프로그래밍이란 1편 -정의와 왜 필요한지?- (0) | 2022.07.30 |
파이썬에서 가상환경 만드는 방법? (0) | 2022.07.26 |
파이썬의 Falsy? - False로 취급되지만 False는 아닌 값 - (0) | 2022.07.25 |
파이썬의 논리 연산 and/or의 비밀 - 단축 평가 - (0) | 2022.07.25 |