Разница между этими двумя методами наследуется по назначению.
оператор break
предназначен для использования внутри цикла и остановки итерации при переходе к break
.
* 1006. * оператор
return
предназначен для остановки выполнения функции и возврата значения.
разница во времени вызвана процедурой, которая начинается при переходе к break
/ return
;Вы можете видеть, что на уровне инструкций операторы делают разные вещи -> вызывая разные моменты времени:
import dis
def x():
while True:
return
def y():
while True:
break
print(dis.dis(x))
print(dis.dis(y))
Вывод: для x
:
4 0 SETUP_LOOP 4 (to 6)
5 2 LOAD_CONST 0 (None)
4 RETURN_VALUE
>> 6 LOAD_CONST 0 (None)
8 RETURN_VALUE
для y
:
8 0 SETUP_LOOP 6 (to 8)
9 >> 2 BREAK_LOOP
4 JUMP_ABSOLUTE 2
6 POP_BLOCK
>> 8 LOAD_CONST 0 (None)
10 RETURN_VALUE
Очевидно, что если вы просто сравниваете разницу в фиктивном примере , который вы дали, return
будет быстрее.