Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 1, 2016 17:07:44

Niccolum
Зарегистрирован: 2016-04-26
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Завершение рекурсивных функций

Добрый день. Имеется функция:

def check_connection(network, first, second):
    for thing in network:
        if first in thing:
            things = thing.replace('-', ' ').split()
            for xy in things:
                if first != xy:
                    first = xy
                    if first == second:
                        return True
                        sys.exit()
                    else:
                        check_connection(network, first, second)
    return False

Имеются входные данные
check_connection(
        ("dr101-mr99", "mr99-out00", "dr101-out00", "scout1-scout2",
         "scout3-scout1", "scout1-scout4", "scout4-sscout", "sscout-super"),
        "scout2", "scout3")

Проверка на связь последних двух элементов во входных данных.

Функция рекурсивна. Имеется вопрос - реально ли закрыть все функции при достижении результата True ?

Отредактировано FishHook (Июнь 1, 2016 17:12:12)

Офлайн

#2 Июнь 1, 2016 20:50:44

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Завершение рекурсивных функций

Niccolum
реально ли закрыть все функции
Что такое закрыть функции? Никогда не слышал чтобы их можно было закрыть.
Niccolum
                   if first == second:
                        return True
                        sys.exit()
sys.exit() бесполезен. Он недостижим.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version