تقنية

unparse في بايثون: هل يعيد النص الأصلي بحروفه؟

مسافات جديدة
تفسير توضيحي [1] [2]

افصل تطابق النص عن تطابق الشجرة. [1] [2]

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

لا؛ تغيرت مسافات المثال. [1] [2]

  • المصدر leaf=4+9 بلا مسافات. [1] [2]
  • الناتج leaf = 4 + 9 بمسافات. [1] [2]
  • تطابق النص: False. [1] [2]
  • تطابق dump دون الإحداثيات: True. [1] [2]
  • فحص 3.12.14؛ تحليل دون تشغيل النص. [1] [2]

المثال

المصدر leaf=4+9 بلا مسافات. [1] [2]

import ast
source="leaf=4+9"
t=ast.parse(source)
s=ast.unparse(t)
print(repr(s))
print(s==source)
print(ast.dump(ast.parse(s),include_attributes=False)==ast.dump(t,include_attributes=False))

[1] [2]

النص والشجرة

الناتج leaf = 4 + 9 بمسافات. [1] [2]

تطابق النص: False. [1] [2]

تطابق dump دون الإحداثيات: True. [1] [2]

المقارنة تستعمل include_attributes=False في الشجرتين. [1] [2]

النتيجة: False للنص، True للحقول. [1] [2]

نوعا التطابق
تفسير توضيحي [1] [2]

النطاق

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

إسناد صغير مؤلف؛ ليس استخراجًا من النص الأصلي. [1] [2]

المراجع

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

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

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