قراءة اسم من الدالة المحيطة لا تحتاج تصريحًا هنا. [1] [2]
الخلاصة السريعة
لا؛ المتغير الحر في دالتنا الداخلية ليس مصرحًا بـnonlocal. [1] [2]
المثال
import symtable as s
text='def outer():\n mark=7\n def inner():\n return mark'
t=s.symtable(text,'OWN','exec')
v=t.get_children()[0].get_children()[0].lookup('mark')
print(v.is_free(),v.is_nonlocal())لماذا يختلف العلمان؟
المصدر هنا يفحص نطاق المتغير الحر في الأول، وبت التصريح في الثاني. نختار جدول inner داخل outer. إضافة التصريح تبقي الاسم حرًا هنا. [1] [2]

النطاق
OWN تسمية مصدر في الذاكرة، وexec نمط التحليل. لا نستدعي الدالتين أو نستخرج قيمة المتغير. نفحص نصينا فقط. [1] [2]
المراجع
- Python 3.12: Symbol free/nonlocal
- CPython 3.12.14: symtable.py
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
