“ x not in”与“ not x in”的比较

“ x not in”与“ not x in”的比较,第1张

“ x not in”与“ not x in”的比较

您可以清楚地验证:这两种形式构成相同的字节码:

>>> import dis>>> dis.dis(compile('if x not in d: pass', '', 'exec'))  10 LOAD_NAME     0 (x)   3 LOAD_NAME     1 (d)   6 COMPARE_OP    7 (not in)   9 JUMP_IF_FALSE 4 (to 16)  12 POP_TOP    13 JUMP_FORWARD  1 (to 17)        >>   16 POP_TOP          >>   17 LOAD_ConST    0 (None)  20 RETURN_VALUE        >>> dis.dis(compile('if not x in d: pass', '', 'exec'))  10 LOAD_NAME     0 (x)   3 LOAD_NAME     1 (d)   6 COMPARE_OP    7 (not in)   9 JUMP_IF_FALSE 4 (to 16)  12 POP_TOP    13 JUMP_FORWARD  1 (to 17)        >>   16 POP_TOP          >>   17 LOAD_ConST    0 (None)  20 RETURN_VALUE

因此很明显,它们在语义上是相同的。

作为样式问题,PEP 8没有提及该问题。

就我个人而言,我非常喜欢这种

if x not in y
形式-可以立即清楚地表明它
not in
是单个运算符, 并且 “读起来​​像英语”。
if not x in y
可能会误导一些读者认为这意味着
if (not x) in y
,读起来不太像英语,并且绝对没有补偿优势。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5662015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存