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

كيفية حل التبعية الدائرية في بايثون؟

تم النشر بتاريخ 2024-11-05
تصفح:230

How to Resolve Circular Dependency in Python?

التبعية الدائرية في بايثون

يمكن أن تكون مواجهة التبعية الدائرية مشكلة محبطة عند العمل مع وحدات بايثون. في هذا السيناريو المحدد، لدينا ملفان،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()
    ...
بيان الافراج أعيد طبع هذه المقالة على: 1729326856 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3