Heim > Artikel > Backend-Entwicklung > Warum gibt meine rekursive Python-Funktion keine zurück?
Rekursive Funktion gibt in Python „Keine“ zurück: Behebung des Problems
In bestimmten Szenarien kann es bei der Verwendung rekursiver Funktionen in Python zu einer Situation kommen wobei die Funktion None anstelle des gewünschten Werts zurückgibt. Dieses Problem tritt häufig auf, wenn die Funktion einen bestimmten Pfad zurückgeben soll, das tatsächlich abgerufene Ergebnis jedoch „Keine“ ist.
Eine mögliche Ursache für dieses Problem ist das Weglassen einer Return-Anweisung nach dem rekursiven Aufruf. Um dieses Problem zu beheben, sollte die Funktion explizit das Ergebnis des rekursiven Aufrufs zurückgeben. Wenn Sie den Code so ändern, dass er eine Return-Anweisung enthält, wird sichergestellt, dass die Funktion den erforderlichen Pfad zurückgibt:
else: return get_path(directory[filename], rqfile, path)
Darüber hinaus ist es ratsam, unabhängig vom Ergebnis der Funktion stets eine Return-Anweisung am Ende der Funktion einzufügen rekursiver Aufruf. Durch diese Vorgehensweise wird sichergestellt, dass die Funktion immer einen Wert zurückgibt, wodurch die Möglichkeit vermieden wird, fälschlicherweise „None“ zurückzugeben:
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)) return get_path(directory[filename], rqfile, path)
Durch die Implementierung dieser vorgeschlagenen Anpassungen gibt die rekursive Funktion den beabsichtigten Pfad anstelle von „None“ zurück und löst so das Problem angetroffen.
Das obige ist der detaillierte Inhalt vonWarum gibt meine rekursive Python-Funktion keine zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!