3
가능한 중복 :
while (1) Vs. for while(True) — Why is there a difference?참 또는 1 동안?
"진정한 동안"나는 "일 동안"다른 사람의 코드에서 종종 볼 대신. 나는 True를 사용하는 것이 훨씬 더 파이썬적인 것이라고 생각하지만 실제로는 어떤 차이가 있는지 인지 확인하고 싶었다.
그래서 다음을 시도하고 결과는 놀랍습니다. 무엇에 대한 내가 볼 수있는 것처럼 그것은 통역사가 1 부울 변환을 최적화 할 수있는 것처럼 보입니다. 반면에 True가 아니라면, 내가 맞습니까? 의 반대입니다.
누구나 저에게 설명 할 수 있습니다, 아니면 내 결론이 잘못 되었나요? 불행하게도, 파이썬 2에서 나는이 작업을 수행 할 수 있기 때문에
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
아마도 실제 코드가 통과하지 않기 때문에 결코 중요하지 않습니다. 따라서 가독성을 선호하십시오. –