فرّق القيمة من العملية. [1] [2]
الخلاصة السريعة
المثال
import ast as a
for s in ['[6,8]','[6+8]']:
try:
print(a.literal_eval(s))
except ValueError:
print('ValueError')المخرجات: [6, 8] ثم ValueError. [1] [2]
سبب الاختلاف
الأولى تحوي عقدتي Constant؛ الثانية عقدة BinOp للجمع، وتُرفض في التحويل هنا. [1] [2]

هذه أسماء عناصر شجرة ast.parse(s,mode="eval")؛ عدد عناصر القائمة اثنان أو واحد، وليس حجم الناتج المرفوض. [1] [2]
النطاق
المدخلان صحيحا البنية؛ ليس كل فشل ValueError، فقد يرفع مدخل ناقص SyntaxError. [1] [2]
عدم تنفيذ شيفرة لا يمنع استهلاك الموارد؛ لا نوصي بالدالة لمدخلات غير موثوقة. [1] [2]
المراجع
- Python: ast.literal_eval
- CPython 3.12.14: ast.py
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
