Python에서 id() 함수는 무엇을 참조합니까?

不言
풀어 주다: 2023-03-24 06:56:02
원래의
6055명이 탐색했습니다.

이 글에서는 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 방사선 코드 구현

위 내용은 Python에서 id() 함수는 무엇을 참조합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!