Python`if x is not None`或`if not is is None`?[关闭]
发布于 2021-01-29 16:45:11
关注者
0
被浏览
43
1 个回答
-
性能没有差异,因为它们可以编译为相同的字节码:
>>> 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
话就没有歧义。