프로그래밍 언어/Python

파이썬 "if x is not None" or "if not x is None"

Rateye 2021. 11. 5. 10:36
728x90
반응형
질문 : 파이썬`x가 None이 아니면`아니면`x가 None`이 아니면?

if not x is None 버전이 아니라면 항상 더 명확하다고 생각했지만 Google의 스타일 가이드PEP-8은 모두 if x is not None 사용합니다. 사소한 성능 차이가 있습니까 (그렇지 않다고 가정합니다), 하나가 실제로 맞지 않는 경우가 있습니까 (다른 하나가 내 컨벤션에서 확실한 승자로 만드는 경우)? *

None 아닌 모든 싱글 톤을 언급하고 있습니다.

... 없음과 같은 싱글 톤을 비교합니다. 사용 여부입니다.

답변

동일한 바이트 코드로 컴파일되므로 성능 차이가 없습니다.

>>> import dis
>>> dis.dis("not x is None")
  1           0 LOAD_NAME                0 (x)
              2 LOAD_CONST               0 (None)
              4 COMPARE_OP               9 (is not)
              6 RETURN_VALUE
>>> dis.dis("x is not None")
  1           0 LOAD_NAME                0 (x)
              2 LOAD_CONST               0 (None)
              4 COMPARE_OP               9 (is not)
              6 RETURN_VALUE

문체 적으로, 나는 not x is y (not x) is y 라고 오해 할 수 있습니다. x is not y 모호함이 없습니다.

출처 : https://stackoverflow.com/questions/2710940/python-if-x-is-not-none-or-if-not-x-is-none
728x90
반응형