حالة المترجم تمتد للاستدعاء التالي. [1] [2]
الخلاصة السريعة
نعم؛ يتذكر CommandCompiler العبارة التي ترجمها بنجاح. [1] [2]
المثال
from codeop import CommandCompiler
c=CommandCompiler()
c("from __future__ import annotations",
symbol="exec")
s="def f(x: int): pass\n"
ns={}
exec(c(s,symbol="exec"),ns)
a=ns["f"].__annotations__["x"]
print(type(a).__name__)أثر الترجمة
المصدر يحفظ أعلام __future__ من كائن الشيفرة المترجم. تنفيذ تعريف الدالة لاحقًا يصنع دالة بتعليق نصي؛ لم نستدع جسمها. ليس الاحتفاظ بالأثر معتمدًا على تنفيذ عبارة المستقبل هنا. [1] [2]

المقارنة
المترجم الجديد، دون العبارة السابقة، يعطي كائن int للتعريف نفسه؛ تحققنا بالهوية. لا يتغير كائن شيفرة ترجمناه قبل ضبط الأعلام بأثر رجعي. نفحص نصوصنا القصيرة في 3.12.14. [1] [2]
المراجع
- Python 3.12: CommandCompiler
- CPython 3.12.14: remembered compiler flags
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
