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


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

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

  • 2016년 01월 19일에 작성됨

조회수 243


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
  • 2016년 01월 19일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close