#python
#питон #python
Вопрос:
Мне нужно реорганизовать код на python, который использует эту архитектуру :
def f():
def g1():
-code-
g1()
def g2():
-code-
g2()
def g3():
-code-
g3()
Моя функция f()
вызывается кнопкой Tkinter. Является ли эта архитектура приемлемой и эффективной или мне следует удалить вложенные функции?
Как прервать функцию после, g1()
чтобы избежать выполнения g2()
и g3()
без использования if/else
инструкций и не повторяться слишком часто?
Комментарии:
1. Какое условие для возврата перед вызовом
g2
илиg3
?2. Вы просто хотите
for g in [g1,g2,g3]: if g(): return
?3.
break
предназначен для завершения циклов. Чтобы выйти из функции, используйтеreturn
инструкцию.
Ответ №1:
Чтобы избежать выполнения, вы должны возвращать, а не прерывать. Break предназначен для создания циклов.
Также ознакомьтесь с логикой yield и generator в python, которая может начать выполнение вашей функции с того места, где вы остановились в первый раз, когда вы вызываете ее обратно!
https://docs.python.org/3/reference/simple_stmts.html#grammar-token-yield-stmt