Python 의 is 와==두 대상 을 비교 하 는 두 가지 방법
Python 에 서 는 두 대상 이 같은 지 비교 하 는 두 가지 방식 이 있 습 니 다.각각 is 와==이 고 둘 사이 가 다 릅 니 다.
대상:
>>> n = 1
>>> n is 1
True
>>> b = '1'
>>> b is 1
False
>>> n == b
False
1 과'1'은 값 위 에서 든 인용 위 에서 든 다 르 기 때문에 결 과 는 모두 false 이다.대상:
>>> n = 1
>>> n is 1
True
여기 서 지식 이 있 습 니 다.쉽게 말 하면 성형 이라는 primitive type 에 대해 인용 비 교 는 값 비교 입 니 다.그러나 Python 은 정형 을 실현 하 는 과정 에서 이런 방식 을 사 용 했 습 니 다.-5 에서 256 사이 에 있 는 숫자 에 대해 메모리 에 배열 을 저장 하고 다음 에 사용 할 때 직접 참조 합 니 다.이 범위 밖의 숫자 는 int 대상 을 새로 만 듭 니 다.간단 한 example 를 들 어 다음 코드 와 같 습 니 다.
#a b 256
>>> a = 257
>>> b = 257
>>> a is b
False
#a b -5 256
>>> a = 256
>>> b = 256
>>> a is b
True
위의 예 에서 보 듯 이-5~256 사이 의 성형 이 라면 python 은 변수 에 새로운 메모리 공간 을 초기 화하 지 않 지만 256 을 초과 하면 새로운 공간 을 분배 합 니 다.두 대상 의 id 를 인쇄 함으로써 두 대상 의 메모리 주소 의 차 이 를 직접 볼 수 있 습 니 다.다음 과 같 습 니 다.
#a b 256
>>> a = 257
>>> b = 257
>>>
>>>
>>> id(a)
140638347685960
>>> id(b)
140638347686008
#a b -5 256
>>> a = 256
>>> b = 256
>>> id(a)
140638347656864
>>> id(b)
140638347656864
이상 은 Python is 와==의 대비 에 대한 상세 한 설명 입 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 커 뮤 니 티 에 가서 토론 을 하 십시오.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.