Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt meine rekursive Python-Funktion bei der Suche nach einer Datei in einem verschachtelten Wörterbuch „Keine' zurück?
Im bereitgestellten Python-Code versucht eine rekursive Funktion namens get_path, nach einer Datei zu suchen ( rqfile) in einem verschachtelten Wörterbuch (Dictionary). Wenn jedoch der Pfad zur Datei gefunden wird und zurückgegeben werden muss, gibt die Funktion „None“ zurück. Der Code lautet wie folgt:
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)
Um dieses Problem zu beheben, muss die Funktion das Ergebnis des rekursiven Aufrufs zurückgeben. Standardmäßig geben Python-Funktionen None zurück, wenn keine explizite Return-Anweisung vorhanden ist. Um den richtigen Pfad zurückzugeben, ersetzen Sie die letzte Zeile der Funktion durch Folgendes:
return get_path(directory[filename], rqfile, path)
Diese Änderung stellt sicher, dass die Funktion den beim rekursiven Aufruf gefundenen Pfad zurückgibt. Hier ist der aktualisierte Code:
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: return get_path(directory[filename], rqfile, path)
Das obige ist der detaillierte Inhalt vonWarum gibt meine rekursive Python-Funktion bei der Suche nach einer Datei in einem verschachtelten Wörterbuch „Keine' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!