Оператор GOTO в Python

Оператор GOTO не ругал только ленивый. Тем не менее, это инструмент, и польза или вред от него определяется только тем, как его используют.

Эта маленькая библиотека позволяет использовать оператор GOTO в коде на Python:

Декоратор with_goto заменяет байт-код для доступа к атрибутам у объектов label и goto на безусловный переход (JUMP_ABSOLUTE). Без него такой код вызвал бы исключение NameError, поскольку переменные begin и end не инициализированны.

Идея добавить GOTO в Python не нова. В 2004 году в качестве первоапрельской шутки была написана другая библиотека. Она работает через функцию trace и требует гораздо бóльших накладных расходов.