我有时在别人身上看到代码是“while1”而不是“whiletrue”。
我认为使用True更像Python,但我想看看是否有
实践中有什么不同。在
所以我试着做下面的事情,结果是令人惊讶的。为了什么?
我可以看出解释器可以优化掉1布尔值
虽然它与真实不符,却与我相反
想象上的。在
任何人都可以解释为什么,或者我的结论是错误的?在def f1():
while 1:
pass
def f2():
while True:
pass
In [10]: dis.dis(f)
2 0 SETUP_LOOP 3 (to 6)
3 >> 3 JUMP_ABSOLUTE 3
>> 6 LOAD_CONST 0 (None)
9 RETURN_VALUE
In [9]: dis.dis(f1)
2 0 SETUP_LOOP 10 (to 13)
>> 3 LOAD_GLOBAL 0 (True)
6 POP_JUMP_IF_FALSE 12
3 9 JUMP_ABSOLUTE 3
>> 12 POP_BLOCK
>> 13 LOAD_CONST 0 (None)
16 RETURN_VALUE