이 글에서는 Python의 id() 함수가 무엇을 의미하는지 소개합니다. 이제 특정 참조 값을 가지고 있습니다. 필요한 친구들이 참조할 수 있습니다.
id() 함수는 메모리를 얻는 데 사용됩니다. 개체.주소. 많은 친구들이 파이썬의 id 함수가 무엇인지 모르시나요? 다음으로 편집자는 여러분의 학습에 도움이 되도록 이 기사를 공유할 것입니다.
공식 Python 문서에 제공된 설명은
id(object)
입니다. 반환 개체의 "identity"는 정수(또는 long)입니다. 정수)는 수명 동안 이 개체에 대해 고유하고 상수가 보장됩니다. 수명이 겹치지 않는 두 개체는 동일한 id() 값을 가질 수 있습니다.
CPython 구현 세부 정보: 메모리에 있는 개체의 주소입니다.
볼 수 있는 점은 다음과 같습니다.
1. id(object)는 고유하고 변경되지 않은 객체의 "ID 카드 번호"를 반환합니다. 그러나 중복되지 않는 수명 주기에서는 동일한 id 값이 나타날 수 있습니다. 여기에 언급된 개체는 특히 복합 유형 개체(예: 클래스, 목록 등)를 참조해야 합니다. 문자열 및 정수와 같은 유형의 경우 값이 변경되면 변수의 ID도 변경됩니다.
2. 객체의 id 값은 CPython 인터프리터에서 메모리의 주소를 나타냅니다. (CPython 인터프리터: http://zh.wikipedia.org/wiki/CPython)
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
또한 두 객체가 동일한지 판단하기 위해 is를 사용할 때 기본은 이 id 값입니다
class Obj(): def __init__(self,arg): self.x=arg def __eq__(self,other): return self.x==other.x if __name__ == '__main__': obj1=Obj(1) obj2=Obj(1) print obj1 is obj2 #False print obj1 == obj2 #True lst1=[1] lst2=[1] print lst1 is lst2 #False print lst1 == lst2 #True s1='abc' s2='abc' print s1 is s2 #True print s1 == s2 #True a=2 b=1+1 print a is b #True a = 19998989890 b = 19998989889 +1 print a is b #False
is와 ==의 차이점은 is는 메모리에서의 비교이고 ==는 값의 비교라는 것입니다
관련 권장 사항:
위 내용은 Python에서 id() 함수는 무엇을 참조합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!