Python`if x is not None`或`if not is is 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
话就没有歧义。