Fungsi Rekursif Mengembalikan Tiada dalam Python: Menangani Isu
Dalam senario tertentu apabila menggunakan fungsi rekursif dalam Python, adalah mungkin untuk menghadapi situasi di mana fungsi mengembalikan Tiada dan bukannya nilai yang dikehendaki. Isu ini lazimnya timbul apabila fungsi bertujuan untuk mengembalikan laluan tertentu, tetapi hasil sebenar yang diperoleh ialah Tiada.
Satu punca yang berpotensi untuk masalah ini ialah peninggalan pernyataan pemulangan selepas panggilan rekursif. Untuk menyelesaikan masalah ini, fungsi harus secara eksplisit mengembalikan hasil panggilan rekursif. Mengubah suai kod untuk memasukkan pernyataan pulangan akan memastikan bahawa fungsi mengembalikan laluan yang diperlukan:
else: return get_path(directory[filename], rqfile, path)
Selain itu, adalah dinasihatkan untuk memasukkan pernyataan pulangan secara konsisten pada penghujung fungsi, tanpa mengira hasil daripada panggilan rekursif. Amalan ini memastikan bahawa fungsi akan sentiasa mengembalikan nilai, mengelakkan kemungkinan mengembalikan Tiada secara tersilap:
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)
Dengan melaksanakan pelarasan yang dicadangkan ini, fungsi rekursif akan mengembalikan laluan yang dimaksudkan dan bukannya Tiada, menyelesaikan isu dihadapi.
Atas ialah kandungan terperinci Mengapa Fungsi Sawa Rekursif Saya Tidak Kembali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!