Mengapa Fungsi Sawa Rekursif Saya Tidak Kembali?

Linda Hamilton
Lepaskan: 2024-11-12 14:28:02
asal
765 orang telah melayarinya

Why Does My Recursive Python Function Return None?

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan