التبعية الدائرية في بايثون
يمكن أن تكون مواجهة التبعية الدائرية مشكلة محبطة عند العمل مع وحدات بايثون. في هذا السيناريو المحدد، لدينا ملفان،node.py وpath.py، يحتويان على فئتي Node وPath، على التوالي.
في البداية، استورد path.pyNode.py باستخدام منNode.py import *. ومع ذلك، بعد إضافة طريقة جديدة إلى العقدة التي تشير إلى كائن المسار، أدى استيراد path.py إلى حدوث خطأ لأنه لم يتم تعريف العقدة.
لحل التبعية الدائرية، فكر في تنفيذ ما يلي:
استخدام التقييم البطيء: بدلاً من استيراد وحدة نمطية واحدة داخل وحدة أخرى أثناء التهيئة، قم باستيرادها فقط عند الضرورة ضمن وظيفة محددة. على سبيل المثال، فيnode.py، قم باستيراد المسار فقط عند الحاجة:
# in node.py from path import Path class Node ...
في path.py، قم باستيراد العقدة فقط ضمن الطريقة التي تتطلبها:
# in path.py class Path def method_needs_node(): from node import Node n = Node() ...
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3