작성
·
195
0
실습예제로 동일한 변수의 id 값이 아톰으로하면 동일한데 파이썬 인터프리터로 하면 값이 틀립니다.
(예)
b = 300
c = 300
print(id(b) == id(c))
아톰 : True
파이썬 인터프리터 : False
값이 틀린 이유가 있을까요?
파이썬 인터프리터의 경우 대화형으로 하나씩 수행하다보니 값이 틀려지는걸까요?
답변 4
2
TA님께서 답변을 잘못 주신 것 같고
https://www.quora.com/Why-is-the-following-return-false-in-Python-A-53462-b-53462-id-a-id-b
여기 읽어보시면 해답을 얻으실 수 있을 것 같습니다.
저도 궁금하고 답변을 봐도 이해가 안가서 한참 해맸습니다.
1
안녕하세요.
인프런 강좌 TA 박유진입니다.
b와 c는 300이라는 변수에 들어있는 값은 같지만, 변수 자체의 id는 다른 값을 가지게 됩니다.
따라서 False 결과값이 옳은 결과입니다.
또 궁금한 점이 있으면 질문주세요 :)
감사합니다.
0
0
hp님께서 남겨주신 링크를 대충 본 결과,
핵심이라고 생각되는 부분을 이해하면,
b 와 c가 같은 값(300)을 할당 받았지만,
그것이 저장되는 메모리의 위치가 각각 달라서
(그 메모리 위치값이 파이썬에서는 id인가봅니다.)
그 위치값이 숫자로 표현되나본데,
그게 다른 겁니다.
쉽게 설명하면,
똑같은 아이폰12 pro 스페이스그레이를 샀지만,
시리얼 번호가 다르잖아요 두 폰이.
그래서, 값은 모델이지만, 같은 폰은 아니라는 것이죠.
또 다른 예로
두 사람이 같은 은행에 300만원씩 각자의 계좌에 저금을 했습니다. 그 300만원이라는 액수는 같지만, 한사람의 300만원가 다른사람의 300만원이 같은 통장(계좌)에 있는게 아니라는 뜻으로 해석하면 될것 같습니다.
hp님 감사합니다.
근데, 왜 atom과 파이썬 인터프리터의 값이 다른지는 모르겠네요. 아시는분 그부분에 대해서 설명을 해주면 좋겠어요.