파이썬이 변수에 값을 저장하는 방법은?
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
'프로그래밍 > 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 |