Python 변수가 None 쓰기 코드 인스턴스인지 판단

코드에는 None 여부를 판단하는 변수가 자주 있습니다.
  • 첫 번째는'if x is None'이다
  • 두 번째는'if not x:'입니다
  • .세 번째는'if not x is 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, 빈 목록 [], 빈 사전 {}, 빈 그룹 () 과 같을 때 판단에 영향을 미치지 않는다는 것을 알아야 한다.
    이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

    좋은 웹페이지 즐겨찾기