• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

파이썬의 id 라는 개념이 C 나 C++에서 주소와 비슷한 개념인가요?

21.01.06 19:23 작성 조회수 151

0

파이썬의 id 라는 개념이 C 나 C++에서 주소와 비슷한 개념인가요?

답변 2

·

답변을 작성해보세요.

0

wldnjs2110님의 프로필

wldnjs2110

질문자

2021.01.06

빠른 답변 감사합니다! 그럼 다시 확인하자면 id 자체는 사람이 읽기 쉽게 10진수로 표기가 돼 있는것이고 거기서 hex를 사용해야 실제 주소값을 표현하는 16진수로 받아볼수있다는것인가요?

또한 C나 C++ 처럼 값이 같더라도 변수마다 주소를 지정해주는것이 아니라 값이 같을 때는 한 주소값을 쓰다가 변수마다 값이 바뀌게 되면 그 때 새로운 주소를 할당을 한다는 의미이신거죠? 

그리고 각 a,b라는  변수에 같은 정수를 대입하고 c 변수에만 다른 정수를 넣은뒤 c를 연산을 통하여 a,b와 값이 같은 정수로 다시 만들어 준 후 id 값을 구해보니 c변수가 a,b와 같은 id를 갖고 있는것을 확인했습니다. 이 말은 변수가 어떻게 되든간에 값이 같아지게 되면 c가 배정받은 id값은 소멸 되고 메모리상에는 a,b,c가 모두 같은 한자리만 차지하게 된다는 의미인가요?파이썬에서는 내부 컴파일러가 알아서 자동으로 메모리를 그때그때 생성하고 소멸시켜준다는 의미인것 같은데 굉장히 편리하네요

0

좋은 질문입니당 wldnjs 님

네 맞습니다. 근데 조금 차이점이 있습니다.

내부적 cpython에서는 id가 address를 의미해요.

python 에서는 id에다가 hex 를 사용해야 알 수 있어요!

아래 참고하세요.

id is the method you want to use: to convert it to hex:

hex(id(variable_here))

For instance:

x = 4
print hex(id(x))

Gave me:

0x9cf10c