تقنية

resolve_name في importlib: هل الاسم المحلول يثبت وجود الوحدة؟

ناتج BASE OWN نص من النوع str
اسم مطلق نصي. [1] [2] [3]

نفحص تحويل اسم نسبي إلى مطلق. [1] [2] [3]

الخلاصة السريعة

لا؛ النتيجة اسم نصي. [1] [2] [3]

  • مررنا .OWN والحزمة النصية BASE. [1] [2] [3]
  • الناتج BASE.OWN من النوع str. [1] [2] [3]
  • لم يبحث الاستدعاء عن وحدة في فحصنا. [1] [2] [3]
  • الاسم النسبي دون حزمة يرفع ImportError. [1] [2] [3]
  • اختبرنا 3.12.14؛ لا نثبت وجود حزمة BASE. [1] [2] [3]

المثال

import importlib.util as u
n=u.resolve_name('.OWN','BASE')
print(n)
print(type(n).__name__)

[1] [2] [3]

المخرجان BASE.OWN ثم str. [1] [2] [3]

الاسم والبحث

الناتج يضم اسم الحزمة والجزء النصي بعد النقطة. حل الاسم هنا لا يستورد وحدة؛ عداد الاستيراد وعداد البحث بقيا صفرًا في فحصنا. [1] [2] [3]

صفر لاستدعاءات الاستيراد والبحث في الفحص
عدادان في فحصنا. [1] [2] [3]

الشرط

مع اسم نسبي، يلزم اسم حزمة غير فارغ. اختبرنا None فظهر ImportError. هذا خطأ في شرط حل الاسم، وليس دليل بحث عن الملف. [1] [2] [3]

المراجع

  1. Python: importlib.util.resolve_name
  2. CPython 3.12.14: importlib/util.py
  3. CPython 3.12.14: importlib/_bootstrap.py
  4. موضوع تك: لغة بايثون — مفردات
  5. موضوع تك: تطبيقات بايثون — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.