تقنية

Cmd في بايثون: لماذا يعيد السطر الفارغ الأمر؟

echo A يطبع A ثم السلسلة الفارغة تطبع A مرة أخرى
نتيجتا المعالج المؤلف. [1] [2]

المدخل الفارغ قد يعيد الأمر السابق. [1] [2]

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

تعيد emptyline الافتراضية آخر أمر غير فارغ. [1] [2]

  • نعرف do_echo لتطبع وسيطها. [1] [2]
  • يرسل onecmd أولًا echo A. [1] [2]
  • ثم نرسل سلسلة فارغة. [1] [2]
  • يطبع المثال A مرتين. [1] [2]
  • اختبرنا 3.12.14؛ تجاوز emptyline يغير السلوك. [1] [2]

المثال

from cmd import Cmd
class C(Cmd):
 def do_echo(self,arg):print(arg)
c=C()
c.onecmd('echo A')
c.onecmd('')

[1] [2]

المخرجان A ثم A؛ لا تعني السلسلة الفارغة عدم استدعاء المعالج. [1] [2]

من المدخل إلى المعالج

يحفظ onecmd الأمر، ويستدعي emptyline للمدخل الفارغ. تستدعي الدالة الافتراضية الأمر المحفوظ مرة أخرى. [1] [2]

عند تجاوز emptyline بدالة لا تفعل شيئًا، يسجل اختبارنا استدعاء do_echo واحدًا فقط بعد المدخلين. [1] [2]

استدعاءان مع emptyline الافتراضية واستدعاء واحد مع التجاوز الصامت
بعد المدخلين نفسيهما. [1] [2]

نطاق المثال

دالتنا تطبع نصًا؛ لا نشغّل صدفة نظام أو نقرأ طرفية. لا نعمم على كل مفسر أوامر. [1] [2]

المراجع

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

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