تقنية

resolve_name في بايثون: هل يلزم اسم بعد النقطتين؟

math مع نقطتين دون سمة
السلسلة المدخلة. [1] [2]

الجزء الفارغ بعد النقطتين ليس خطأً في هذه الصيغة. [1] [2]

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

لا؛ تعيد math: الوحدة نفسها في مثالنا. [1] [2]

  • نستورد math قبل حل الاسم. [1] [2]
  • السلسلة math: تنتهي بالنقطتين. [1] [2]
  • الفحص r is math يعطي True. [1] [2]
  • اسم نوع النتيجة module. [1] [2]
  • اختبرنا 3.12.14 دون وحدة خارجية. [1] [2]

المثال

import math
from pkgutil import resolve_name
r=resolve_name('math:')
print(r is math)
print(type(r).__name__)

[1] [2]

الجزء الاختياري

المصدر هنا يجعل مسار السمات فارغًا عند غياب الجزء بعد النقطتين؛ لذلك تبقى النتيجة الوحدة. المخرجان True ثم module. أما math:pi فيحدد سمة داخلها. [1] [2]

نتيجة مطابقة لوحدة math
فحص النتيجة. [1] [2]

النطاق

نتحقق من وحدة مستوردة مسبقًا. لا يعني ذلك أن حل أي اسم يتجنب الاستيراد أو آثاره. الجزء الفارغ يختلف عن اسم سمة غير موجودة. [1] [2]

المراجع

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

للتوسع: بحث عن لغات البرمجة

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