pop_all ينقل دوال التنظيف المسجلة إلى ExitStack جديد دون تشغيلها. [1]
الخلاصة السريعة
نقل الدوال يؤجل تشغيلها حتى إغلاق المكدس الجديد. [1]
- pop_all ينقل دوال التنظيف المسجلة إلى ExitStack جديد دون تشغيلها. [1]
- close يشغّل الدوال بعكس ترتيب تسجيلها. [1]
- مثال مؤلف شُغّل على CPython 3.12.14 مع from contextlib import ExitStack؛ events=[] وstack=ExitStack()؛ نسجل stack.callback(events.append,x) للرموز r وu وw بالترتيب. [1]
- بعد new=stack.pop_all() ثم stack.close()، تبقى events فارغة. [1]
- new.close() يجعل events تساوي ["w","u","r"]؛ سجلنا رموزًا فقط، دون تنظيف موارد فعلية. [1]
نقل الدوال
pop_all ينقل دوال التنظيف المسجلة إلى ExitStack جديد دون تشغيلها. [1]
ترتيب التشغيل
close يشغّل الدوال بعكس ترتيب تسجيلها. [1]
تسجيل المثال
مثال مؤلف شُغّل على CPython 3.12.14 مع from contextlib import ExitStack؛ events=[] وstack=ExitStack()؛ نسجل stack.callback(events.append,x) للرموز r وu وw بالترتيب. [1]
new=stack.pop_all(); stack.close() -> events=[] [1]

إغلاق الجديد
بعد new=stack.pop_all() ثم stack.close()، تبقى events فارغة. [1]
new.close() -> events=["w","u","r"] [1]
new.close() يجعل events تساوي ["w","u","r"]؛ سجلنا رموزًا فقط، دون تنظيف موارد فعلية. [1]
المراجع
للتوسع: تكديس النماذج.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
