рекурсивная функция возвращает ни один в 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