Правильно ли построен этот goto.py:Python

Программы на Python
Anonymous
Правильно ли построен этот goto.py:

Сообщение Anonymous »

Я разработал метод, имитирующий оператор goto в Python, который традиционно недоступен в этом языке. В этом подходе используется специальное исключение для имитации перехода между помеченными функциями. Код хорошо работает для простых переходов, и я буду признателен за любые отзывы о потенциальных ошибках или улучшениях.
Вот код Python, реализующий функцию перехода:
class Goto(Exception):
pass

def goto(label, globals_=globals()):
if label in globals_:
func = globals_[label]
func()
else:
raise ValueError("Label %s not defined" % label)

def label(func):
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except Goto as jump:
if jump.args[0] == func.__name__:
return wrapper(*args, **kwargs)
else:
raise
return wrapper

@label
def start():
print("This is the start.")
goto("end")

@label
def middle():
print("This is the middle.")

@label
def end():
print("This is the end.")

start()

Что вы должны увидеть на выходе:
This is the start.
This is the end.


Подробнее здесь: https://stackoverflow.com/questions/790 ... -correctly

Вернуться в «Python»