• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

아톰 vs 파이썬 인터프리터

19.09.12 12:36 작성 조회수 117

0

실습예제로 동일한 변수의 id 값이 아톰으로하면 동일한데 파이썬 인터프리터로 하면 값이 틀립니다.

(예)

b = 300

c = 300

print(id(b) == id(c))

아톰 : True

파이썬 인터프리터 : False

값이 틀린 이유가 있을까요?

파이썬 인터프리터의 경우 대화형으로 하나씩 수행하다보니 값이 틀려지는걸까요?

답변 4

·

답변을 작성해보세요.

2

hp님의 프로필

hp

2019.09.18

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

박건현님의 프로필

박건현

2021.06.30

파이썬 인터프리터의 경우 대화형으로 하나씩 수행하다보니 값이 틀려지는걸까요?  

- 네, 저도 이렇게 생각합니다.

0

Youngjae Choi님의 프로필

Youngjae Choi

2021.03.16

hp님께서 남겨주신 링크를 대충 본 결과,
핵심이라고 생각되는 부분을 이해하면,

b 와 c가 같은 값(300)을 할당 받았지만,
그것이 저장되는 메모리의 위치가 각각 달라서
(그 메모리 위치값이 파이썬에서는 id인가봅니다.)
그 위치값이 숫자로 표현되나본데,
그게 다른 겁니다.

쉽게 설명하면,
똑같은 아이폰12 pro 스페이스그레이를 샀지만,
시리얼 번호가 다르잖아요 두 폰이.

그래서, 값은 모델이지만, 같은 폰은 아니라는 것이죠.

또 다른 예로
두 사람이 같은 은행에 300만원씩 각자의 계좌에 저금을 했습니다. 그 300만원이라는 액수는 같지만, 한사람의 300만원가 다른사람의 300만원이 같은 통장(계좌)에 있는게 아니라는 뜻으로 해석하면 될것 같습니다.

hp님 감사합니다.

근데, 왜 atom과 파이썬 인터프리터의 값이 다른지는 모르겠네요. 아시는분 그부분에 대해서 설명을 해주면 좋겠어요.