«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему моя рекурсивная функция возвращает `note` в Python?

Почему моя рекурсивная функция возвращает `note` в Python?

Опубликовано в 2025-03-23
Просматривать:736

Why Does My Recursive Function Return `None` in Python?

рекурсивная функция возвращает ни один в Python Resolved

При попытке вернуть путь в рекурсивную функцию может возникнуть, когда «не» возвращается. Это может быть разрешено путем обеспечения возврата рекурсивного результата. Вот объяснение того, почему и как это исправить:

] в предоставленном коде:

def get_path(dictionary, rqfile, prefix=[]):
    for filename in dictionary.keys():
        path = prefix   [filename]
        if not isinstance(dictionary[filename], dict):
            if rqfile in str(os.path.join(*path)):
                return str(os.path.join(*path))
        else:
            get_path(directory[filename], rqfile, path)

рекурсивный вызов заканчивается get_path (directory [filename], rqfile, path) без возврата. Это означает, что если rQfile не находится в str (os.path.join (*path)), функция заканчивается без явного возвращения ничего, что приводит к возвращаемому значению по умолчанию. Вернуть get_path (каталог [файл имени], rqfile, path)

, всегда возвращаясь в конце функции, независимо от того, является ли это рекурсивным вызовом, мы гарантируем, что возвращение ясно дано, предотвращая «нет» от возврата. Функция должна вернуться в обоих случаях: когда RQFile находится на пути, а когда нет, и нет необходимости в том, что ветвь else просто прекратила функцию.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3