if x is not None, if not x is None중 어느 걸 써야 하나요?

조회수 15973회

저는 if not x is None이 더 읽기 좋은 표현이라고 생각했는데 Google style guide에는 if x is not None라고 쓰라고 돼 있습니다.

둘이 무슨 속도차이 같은게 있어서 그런 건가요? 아니면 if not x is None이 가독성이 더 떨어져서 그런 건가요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    코드를 쓸 때 not x is y대신 if x is not None을 권장하는 이유는, 컴파일러에서는 뭘 쓰던 동일하게 not (x is y)로 처리 하지만 사람이 읽기에는 (not x) is y로 해석될 여지가 있기 때문입니다.

    다음에 보이는 것 처럼 둘은 같은 bytecode로 컴파일되기 때문에 수행 속도차는 없습니다.

    Python 2.6.2
    >>> import dis
    >>> def f(x):
    ...    return x is not None
    ...
    >>> dis.dis(f)
      2           0 LOAD_FAST                0 (x)
                  3 LOAD_CONST               0 (None)
                  6 COMPARE_OP               9 (is not)
                  9 RETURN_VALUE
    >>> def g(x):
    ...   return not x is None
    ...
    >>> dis.dis(g)
      2           0 LOAD_FAST                0 (x)
                  3 LOAD_CONST               0 (None)
                  6 COMPARE_OP               9 (is not)
                  9 RETURN_VALUE
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)