افصل حالة المنهي عن الكائن. [1] [2]
الخلاصة السريعة
f.alive=False لا يعني اختفاء obj؛ يمكن استدعاء المنهي يدويًا والكائن باقٍ. [1] [2]
المثال
import weakref class C: pass obj=C() probe=weakref.ref(obj) def cleanup(): return 7 f=weakref.finalize(obj,cleanup) print(f.alive,probe() is obj) print(f(),f.alive,probe() is obj) print(f())
الناتج: True True ثم 7 False True ثم None. [1] [2]
حالتان
alive تخص المنهي؛ يحتفظ obj بمرجع قوي إلى الكائن. انتهاء المنهي لا يحذفه. [1] [2]
الاستدعاء التالي
إعادة f() لا تعيد تشغيل cleanup. في التنفيذ المثبت، يزيل أول استدعاء قيد المنهي من سجله. [1] [2]

النطاق
فئة عادية تدعم المرجع الضعيف؛ لا يحتفظ cleanup بالكائن. لا نفحص الإغلاق أو detach هنا. [1] [2]
المراجع
- Python: weakref وfinalize
- CPython 3.12.14: weakref.py
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
