3
可能重复:
while (1) Vs. for while(True) — Why is there a difference?虽然是真的还是1?
我有时看到别人的代码 “而1”,而不是 “而真”。 我认为使用True更pythonic,但我想检查是否有 在实践中的任何差异。
所以我试图做到以下几点,结果令人惊讶。对于 我可以看到,它看起来像解释器可以优化1布尔 转换,而它不与True,这与我所设想的相反。
任何人都可以解释为什么,或者可能是我的结论错误?
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
它从来没有真正重要,因为大概真正的代码不通过。所以更喜欢可读性。 –