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
它從來沒有真正重要,因爲大概真正的代碼不通過。所以更喜歡可讀性。 –