Python`if x is not None`或`if not is is None`?[关闭]

发布于 2021-01-29 16:45:11

已关闭 。这个问题需要细节或说明。它当前不接受答案。


想改善这个问题吗? 添加详细信息并通过编辑此帖子来澄清问题。

上个月关闭。

改善这个问题

我一直认为if not x is None版本会更清晰,但是Google的样式指南PEP-8都使用if x is not None。是否存在任何微小的性能差异(我假设不是),并且在任何情况下确实不适合(使另一方成为我的会议的明显获胜者)吗?*

*我指的是任何单身人士,而不仅仅是None

…比较单例,如“无”。使用是或不是。

关注者
0
被浏览
43
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    性能没有差异,因为它们可以编译为相同的字节码:

    >>> 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话就没有歧义。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看