2016-10-27 5 views
0

>>> if '' is not None: ... print'23333' ... 23333 (없음이 아님)이 참이고 ('')가 거짓이므로 생각하는 이유는 무엇입니까? 테스트가 귀하의 경우 True을 반환 있도록 ''None, 그들은하지 않습니다 동일한 객체, 경우 개체의 정체성, 즉 대한파이썬에서 True를 반환하는 이유

+0

'' ''이'None'과 같은 객체가 아닌지 검사하고 있습니다. 그들은 동일한 객체가 아니므로 검사는 True를 반환하므로 조건이 발생합니다. –

+0

'does not'는 일어나고있는 전체 연산자입니다.'if '가 (None이 아닌)''시도해보십시오.' –

답변

4

isis not 테스트, 테스트합니다. the Python documentation에서

:

운영자 is 및 개체의 정체성에 대한 is not 시험 : x is y 사실 경우 x와 y가 같은 오브젝트있는 경우에만. x is not y은 역 진리 값을 산출합니다. ''None이 같은 "truthiness"을 가지고 있지만

, 그것은 다른 말로하면, 그건 당신이 같은 객체를 참조하지, 그들이 할 수 bool(None) 또는 bool('')을 할 경우 둘 다 False로 평가합니다.

+0

진심으로 감사드립니다. – admin

+0

@dscdtc 아무 문제가 없습니다. 처음에는 혼란 스러울 수 있습니다. – elethan

2

is not은 부정 연산자 is과 동일합니다. '' is None이 거짓이므로 '' is not None이 true입니다.

그러나 is 테스트 이후 신원 확인, 평등이 아니라면 '' is (not None)은 여전히 ​​원하는 것을 수행하지 않습니다.

+0

진심으로 감사드립니다. – admin

관련 문제