라벨이 id인 게시물 표시

[python] id() 정리

이미지
python - id() 파이썬의 Built-in Function으로 객체의 식별값을 반환하는 함수, 반환 값 타입은 int id(object) 인자로 object를 넣으면 id 함수는 객체의 unique한 int형 id값을 반환합니다. id란? 파이썬은 Call by Assignment로 모든 것을 객체로 식별합니다. (문자열, 정수, 클래스 등 모두 객체) id는 객체가 생성될 때 자동으로 할당되며 unique한 값을 보장합니다. 만약, 두 객체의 lifetime이 겹치지 않으면 같은 id 값이 할당될 수 있습니다. id는 C언어에선  메모리 주소  표현하고 파이썬은 unique id 로 표현합니다. (포인터 개념으로 이해하면 됩니다) id 할당은 프로그램을 실행할 때 마다 매번 다른 값이 부여됩니다. 단, 일반적으로 많이 사용되는 객체는 파이썬에서 내부적으로 메모리가 할당되어 있어 프로그램을 실행할 때 마다 같은 id가 부여됩니다. (Ex, int -5 to 256은 매번 같은 메모리 주소로 할당됨) Examples Mutable과 Immutable 개념이 헷갈리는 분은 Mutable과 Immutable 차이점 글 을 참고해주세요. 1. Mutable - list x = [ 1 , 2 , 3 ] y = [ 1 , 2 , 3 ] print ( f"x id: { id (x) } , y id: { id (y) } " ) # x id: 140572825821664, y id: 140572825824224 x와 y객체를 생성하면 자동으로 id가 할당되며, x와 y의 객체 id를 출력하기 위해 id() 함수를 이용합니다. 두 객체 id가 각각 140572825821664, 140572825824224로 할당된 걸 확인할 수 있습니다. 두 객체 id가 다른 이유를 모르시는 분은 Mutable과 Immutable 차이점 글 을 꼭 참고해주세요. 2. Mutable - set x = { 1 , 2 , 3 } y