نقارن تصنيف الاسم بتصريح مكتوب. [1] [2]
الخلاصة السريعة
لا؛ الاسم العام الضمني في دالتنا لا يحتاج تصريح global. [1] [2]
المثال
import symtable as s
samples=['def f(): return mark',
'def f():\n global mark\n'
' return mark']
for text in samples:
t=s.symtable(text,'OWN','exec')
v=t.get_children()[0].lookup('mark')
print(v.is_global(),
v.is_declared_global())لماذا يختلف العلمان؟
المصدر هنا يجعل is_global يقبل النطاق العام الضمني والمصرح به. أما is_declared_global فيختبر المصرح به وحده. ترتيب المخرجات هو هذان العلمان؛ لذلك بقي الأول صحيحًا في الحالتين. [1] [2]

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