>  기사  >  백엔드 개발  >  "foo is None"과 "foo == None"의 차이점은 무엇입니까?

"foo is None"과 "foo == None"의 차이점은 무엇입니까?

anonymity
anonymity원래의
2019-05-24 13:59:442427검색

"foo is None"과 "foo == None"의 차이점은 판단자의 차이입니다. is 판단자는 두 객체가 동일한 객체인지 비교하는 데 사용되고 == 판단자는 값을 비교하는 데 사용됩니다. ​​​​두 객체는 ​​동일합니다.

foo는 None과 foo == None

if foo is None: 
    pass
if foo == None: 
    pass

두 가지 사용법이 다릅니다.

해결책답변:

Python의 변수 자체는 값을 저장하지 않습니다. 변수 할당은 실제로 메모리에 있는 캐시된 개체 자체에 대한 변수 참조를 가리킵니다.

a=5
b=5

두 개가 있는 것 같습니다. 변수는 실제로 동일한 An 개체를 가리킵니다. 이때 a==b와 a는 b입니다. == 연산자는 두 개체의 값을 비교하여 두 변수가 An 개체를 가리키는지 여부를 결정합니다. 동일한 객체인지 확인하려면 id() 함수를 사용하여 실제 객체의 식별자(정수)를 표시할 수 있습니다. 이때 id(a), id(b)의 식별자가 표시됩니다. , 및 id(5) 는 모두 일관성이 있습니다.

마찬가지로 foo가 None이면 foo는 실제로 None 객체의 실제 식별자를 가리킵니다. 이때 id()를 사용하여 None인 변수의 식별자를 표시하면 결과는 다음과 같습니다. id(없음)와 동일합니다.

질문의 결과는 동일하지만 의미는 다릅니다. "foo와 None은 동일한 객체입니다" 또는 "foo의 값은 None의 값과 같습니다"를 표현하려는지 여부에 따라 다릅니다.

위 내용은 "foo is None"과 "foo == None"의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.