id(object)
함수: 반환되는 것은 객체의 "ID 카드 번호"이며, 이는 고유하고 변경되지 않습니다. 그러나 중복되지 않는 라이프 사이클에서는 동일한 id 값이 나타날 수 있습니다. 여기에 언급된 개체는 특히 복합 유형 개체(예: 클래스, 목록 등)를 참조해야 합니다. 문자열 및 정수와 같은 유형의 경우 값이 변경되면 변수의 ID도 변경됩니다.
Python 버전: Python2.x Python3.x
Python 영어 공식 문서 설명:
객체의 "identity"를 반환합니다. 정수(또는 긴 정수)입니다. ) 수명 동안 이 객체에 대해 고유하고 상수가 보장됩니다. 수명이 겹치지 않는 두 객체는 동일한 id() 값을 가질 수 있습니다.
CPython 구현 세부 정보: 이는 에 있는 객체의 주소입니다. memory.
참고: 객체의 id 값은 CPython 인터프리터(Python의 c 언어로 구현된 인터프리터)에서 메모리의 주소를 나타냅니다.
코드 예:
class Obj(): def __init__(self,arg): self.x=arg if __name__ == '__main__': obj=Obj(1) print id(obj) #32754432 obj.x=2 print id(obj) #32754432 s="abc" print id(s) #140190448953184 s="bcd" print id(s) #32809848 x=1 print id(x) #15760488 x=2 print id(x) #15760464
두 개체가 동일한지 확인하는 데 사용하는 경우 기본은 id 값입니다.
is와 ==의 차이점은 is는 메모리 비교이고 ==는 값의 비교입니다.