Python: while 1

Starting with Py2.3, the interpreter optimizes «while 1» to just a single jump. In contrast «while True» takes several more steps. While the latter is preferred for clarity, time-critical code should use the first form.

Вот как…

Комментарии 4

Owner (companyowner.myopenid.com) № 1
одного не ясно — почему в оптимизатор не зашить:
while 1 = while true = one step :)

это всё равно константы.
Евгений Степанищев (bolknote.ru) автор № 2
Не знаю :) Та же мысль родилась. Там вообще много странных вещей. Например, a = 1+2 в цикле будет вычисляться каждый раз.
MaGIc laNTern (magic-lantern.livejournal.com) № 3
В Python 2.x True можно переназначать. В Python 3.x True сделали ключевым словом (то есть при попытке назначить что-то другое будет ошибка SyntaxError), и там действительно разницы уже нет (оба варианта выполняются без дополнительной операции чтения значения для True).

Подробнее: http://stackoverflow.com/questions/3815359 … difference
Евгений Степанищев (bolknote.ru) автор № 4
Да, тогда я этого не знал, потом узнал: /all/2144

Но всё равно, спасибо!