خطأ في السمة: كائن 'الوحدة النمطية' لا يحتوي على سمة
عند تشغيل وحدة Python a.py مع عمليات الاستيراد المتبادلة على المستوى الأعلى، تواجه مشكلة الخطأ "AttributeError: كائن 'module' لا يحتوي على سمة 'hi'". يحدث هذا الخطأ بسبب وجود مشكلة في الإعداد في عبارات الاستيراد لكلتا الوحدتين.
في a.py، يمكنك استيراد الوحدة b واستدعاء الدالة hi() الخاصة بها. ومع ذلك، في b.py المشار إليه، لا توجد سمة hi. يؤدي هذا إلى حدوث خطأ، مما يشير إلى أن الدالة hi() لا يمكن الوصول إليها من b في سياق a.
لتصحيح هذه المشكلة، لا يُنصح عمومًا بإجراء عمليات استيراد متبادلة على المستوى الأعلى مثل هذا. بدلاً من ذلك، فكر في استيراد الوحدات داخل الوظائف كما يلي:
# In b.py:
def cause_a_to_do_something():
import a
a.do_something()
من خلال تغليف الاستيراد داخل دالة في b.py، فإنك تسمح لـ a.py باستيراد b بأمان دون إثارة الخطأ. بالإضافة إلى ذلك، يضمن هذا الأسلوب أن عملية الاستيراد تحدث مرة واحدة فقط، على الرغم من استدعاء الوظيفة عدة مرات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3