Возможно ли реорганизовать архитектуру кода этой функции с помощью инструкции break?

#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