Найти - Пользователи
Полная версия: Надо выйти из вложенной функции на самый верхний уровень. Как?
Начало » Python для новичков » Надо выйти из вложенной функции на самый верхний уровень. Как?
1
streetmover
Доброго времени суток.

Есть примерно такой код:

 def func_ext():
    ... # какой-то код
    def func_int():
        ... # какой-то код
        return
    func_int()
    ... # какой-то код
При выполнении return происходит выход из func_int() в func_ext(). А можно ли как-то сделать чтобы при выходе из func_int() выходить сразу же на самый верхний уровень, чтобы прекращалось бы выполнение и func_ext()?
4kpt_V
 return func_int()
streetmover
Чего-то не получается.
 def func_ext():
    print('ext1')
    
    def func_int():
	print('int')
        return func_int()
        
    func_int()
    print('ext 2')
    
func_ext()

Пишет:
return func_int()
^
IndentationError: unindent does not match any outer indentation level
4kpt_V
 def func_ext():
    print('ext1')
    
    def func_int():
	print('int')
        return func_int()
        
    print('ext 2')
    return func_int()
    
func_ext()
streetmover
А, мысль понял. Вот заработавший код:
 def func_ext():
    print('ext1')
    
    def func_int():
        a = 1
        print('int')
        return a
        
    return func_int()
    print('ext 2')
    
func_ext()

Спасибо.
4kpt_V
Код неверный. Третий принт не отработает никогда
streetmover
4kpt_V
Третий принт не отработает никогда
Да ладно, это мелочи. Мне главное принцип надо было понять.
Shaman
Бросать кастомное исключение если и ловить его на необходимом уровне.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB