تقنية

rlcompleter في بايثون: هل اقتراح append يضيف عنصرًا؟

اقتراح append وقائمة فارغة
ناتج مثالنا. [1] [2]

نطلب إكمال اسم طريقة لقائمة مؤلفة. [1] [2]

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

لا؛ الاقتراح نص، وتبقى قائمتنا فارغة. [1] [2]

  • يطبع المثال own_list.append( ثم []. [1] [2]
  • complete يعيد اقتراحًا، لا ينفذ الطريقة المقترحة. [1] [2]
  • نبدأ بالحالة 0؛ تنتهي الاقتراحات بـNone. [1] [2]
  • اختبرنا قائمة مدمجة في 3.12.14، دون ضغط مفتاح. [1] [2]
  • البحث في السمات قد يستدعي __getattr__؛ لا نعمم غياب الآثار. [1] [2]

المثال

from rlcompleter import Completer
own_list=[]
c=Completer({'own_list':own_list})
print(c.complete('own_list.ap',0))
print(own_list)

[1] [2]

النص والقائمة

الاقتراح نص لاسم قابل للاستدعاء، وليس إضافة عنصر. وفي حالة مؤلفة أخرى، اقتراح own_list.clear() يترك القائمة [3,1] كما هي. [1] [2]

اقتراح clear والقائمة دون تغيير
حالة إضافية مؤلفة. [1] [2]

حدود النتيجة

لم نستدع الطريقتين المقترحتين. لم نختبر كائنًا مخصصًا أو تكامل readline؛ قد يجري الإكمال تقييمًا وبحثًا في السمات، وقد يضيف __builtins__ إلى قاموس الأسماء. [1] [2]

المراجع

  1. Python: rlcompleter
  2. CPython3.12.14: rlcompleter
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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