"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا تعود وظيفتي العودية "لا شيء" في بيثون؟

لماذا تعود وظيفتي العودية "لا شيء" في بيثون؟

نشر في 2025-03-23
تصفح:693

Why Does My Recursive Function Return `None` in Python?

يمكن حل ذلك من خلال التأكد من إرجاع النتيجة العودية. إليك شرح لماذا وكيفية إصلاحه: في الكود المقدم:

لاسم الملف في القاموس. keys (): path = بادئة [اسم الملف] إذا لم يكن Isinstance (القاموس [اسم الملف] ، DICT): إذا كان RQFile في Str (OS.Path.join (*PATH)): إرجاع str (os.path.join (*path)) آخر: get_path (الدليل [filename] ، rqfile ، path)

تنتهي المكالمة العودية باستخدام get_path (الدليل [filename] ، rqfile ، path) دون عودة. هذا يعني أنه إذا لم يكن RQFile في Str (OS.Path.join (*path)) ، تنتهي الوظيفة دون إرجاع أي شيء بشكل صريح ، مما يؤدي إلى قيمة إرجاع افتراضية لا شيء. return get_path (الدليل [fileName] ، rqfile ، path)

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)
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3