تقنية

increment_lineno في بايثون: هل تنشئ نسخة من الشجرة؟

الشجرة نفسها
تفسير توضيحي [1] [2]

تحقق من هوية الشجرة بعد التعديل. [1] [2]

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

لا؛ تعيد شجرة المثال نفسها بعد تعديلها. [2]

  • بدأ الإسنادان في السطرين 1 و2. [1] [2]
  • الفحص r is t يعطي True. [2]
  • بعد إضافة 3، البداية والنهاية 4 و5. [1] [2]
  • بدايتا العمود تبقيان 0 و0. [2]
  • فحص 3.12.14؛ تعديل إحداثيات، دون تشغيل النص. [1] [2]

المثال

بدأ الإسنادان في السطرين 1 و2. [1] [2]

import ast
t=ast.parse("bud=4\nleaf=9\n")
r=ast.increment_lineno(t,3)
print(r is t)
print([(x.lineno,x.end_lineno)for x in t.body])
print([x.col_offset for x in t.body])

[1] [2]

المعاد

الفحص r is t يعطي True. [2]

المعاد ليس نسخة مستقلة في هذا التنفيذ. [2]

الإحداثيات

بعد إضافة 3، البداية والنهاية 4 و5. [1] [2]

بدايتا العمود تبقيان 0 و0. [2]

النتيجة: True، [(4,4),(5,5)]، [0,0]. [1] [2]

أسطر وأعمدة
تفسير توضيحي [1] [2]

النطاق

فحص 3.12.14؛ تعديل إحداثيات، دون تشغيل النص. [1] [2]

لم نترجم الشجرة المعدلة أو نكتب ملفًا. [1] [2]

المراجع

  1. Python 3.12: line coordinates
  2. CPython 3.12.14: in-place line update
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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

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