تقنية

resolve_name في بايثون: هل builtins:int تعيد عددًا؟

الفئة int نفسها وليست نسخة عددية
هوية الكائن ونوعه في المثال. [1] [2]

نحل اسمًا نصيًا إلى كائن موجود. [1] [2]

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

لا؛ تعيد الفئة نفسها هنا. [1] [2]

  • نختار builtins:int. [1] [2]
  • النقطتان تفصلان الوحدة عن اسم الكائن. [1] [2]
  • الفحص r is int صحيح، وisinstance(r,int) كاذب. [1] [2]
  • الاستدعاء المنفصل r("7") يعطي العدد 7. [1] [2]
  • اختبرنا 3.12.14؛ لا نعمم غياب التنفيذ عند الاستيراد. [1] [2]

المثال

import pkgutil as p
r=p.resolve_name('builtins:int')
print(r is int)
print(isinstance(r,int))

[1] [2]

الناتجان True ثم False. [1] [2]

الكائن والاستدعاء

الاسم يحدد الوحدة builtins والسمة int. النتيجة الفئة int؛ ليست عددًا جديدًا. لاستعمالها في التحويل، نستدعي r("7")، فينتج العدد 7 من النوع int. [1] [2]

استدعاء الفئة صراحة يعطي العدد سبعة
تحويل منفصل بعد حل الاسم. [1] [2]

حدود المثال

قد يستلزم حل الاسم استيراد وحدة. استخدمنا builtins الموجودة؛ لم نفحص آثار استيراد وحدة خارجية أو السمات المخصصة. [1] [2]

المراجع

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

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