getclosurevars تربط الأسماء الخارجية بقيمها؛ globals هنا تضم tone، ولا تضم unused غير المستعملة. [1]
الخلاصة السريعة
لا؛ وجود unused في الوحدة لا يكفي. [1]
- getclosurevars تربط الأسماء الخارجية بقيمها؛ globals هنا تضم tone، ولا تضم unused غير المستعملة. [1]
- على CPython 3.12.14، make تحفظ seed="bud"؛ inner تعيد len(seed+tone)، وtone="leaf" في الوحدة. [1]
- في cv: nonlocals تضم seed بقيمة bud؛ globals تضم tone بقيمة leaf. [1]
- builtins تضم len؛ unused="rain" موجودة في الوحدة وغائبة عن cv.globals. unbound فارغة في مثالنا. [1]
- تحكم: control تقرأ unused، فتضمها globals بقيمة rain. نختبر أسماء بسيطة، دون سمات كائنات أو ضمان كشف كل اعتماد. [1]
الأسماء المشار إليها
getclosurevars تربط الأسماء الخارجية بقيمها؛ globals هنا تضم tone، ولا تضم unused غير المستعملة. [1]
دالة المثال
على CPython 3.12.14، make تحفظ seed="bud"؛ inner تعيد len(seed+tone)، وtone="leaf" في الوحدة. [1]
الفصل بين النطاقين
في cv: nonlocals تضم seed بقيمة bud؛ globals تضم tone بقيمة leaf. [1]
from inspect import getclosurevars tone="leaf";unused="rain" def make(): seed="bud" def inner():return len(seed+tone) return inner own=make();cv=getclosurevars(own) print(cv.nonlocals,cv.globals) [1]

الغائب والتحكم
builtins تضم len؛ unused="rain" موجودة في الوحدة وغائبة عن cv.globals. unbound فارغة في مثالنا. [1]
print(sorted(cv.builtins),cv.unbound) def control():return unused print(getclosurevars(control).globals) [1]
تحكم: control تقرأ unused، فتضمها globals بقيمة rain. نختبر أسماء بسيطة، دون سمات كائنات أو ضمان كشف كل اعتماد. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
