Python 변수가 None 쓰기 코드 인스턴스인지 판단
만약 네가 이렇게 쓰는 것이 아무런 차이가 없다고 생각한다면, 너는 조심해야 한다. 이 안에 구덩이가 하나 있다.먼저 코드를 살펴보겠습니다.
>>> x = 1
>>> not x
False
>>> x = [1]
>>> not x
False
>>> x = 0
>>> not x
True
>>> x = [0] # You don't want to fall in this one.
>>> not x
False
python에서 None, False, 빈 문자열 "", 0, 빈 목록 [], 빈 사전 {}, 빈 그룹 () 은 모두 False, 즉:not None == not False == not '' == not 0 == not [] == not {} == not ()
따라서 목록을 사용할 때 x==[]와 x==None 두 가지 상황을 구분하려면 이 때`if not x:`에 문제가 발생합니다.
>>> x = []
>>> y = None
>>>
>>> x is None
False
>>> y is None
True
>>>
>>>
>>> not x
True
>>> not y
True
>>>
>>>
>>> not x is None
>>> True
>>> not y is None
False
>>>
x가 None인지 아닌지를 판단하고 싶을지도 모르지만'x==[]'의 상황도 판단하면 이런 상황에서는 구분할 수 없다.if not x와 같은 쓰기에 익숙한pythoner는 x가 None, False, 빈 문자열 "", 0, 빈 목록 [], 빈 사전 {}, 빈 그룹 () 과 같을 때 판단에 영향을 미치지 않는다는 것을 알아야 합니다.
한편,'if x is not None'과'if not x is None'의 작법은 전자가 더욱 뚜렷하고 후자는 독자를'if (not x) is None'으로 오해할 수 있기 때문에 전자를 추천하는 동시에 구글이 추천하는 스타일이기도 하다
결론:
'if x is not None'은 가장 좋은 작법으로 뚜렷하고 오류가 발생하지 않으며 앞으로 이런 작법을 계속 사용하겠습니다.
if not x를 사용하는 전제는 x가 None, False, 빈 문자열 "", 0, 빈 목록 [], 빈 사전 {}, 빈 그룹 () 과 같을 때 판단에 영향을 미치지 않는다는 것을 알아야 한다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.