الدالة weakref.WeakMethod()‎ في بايثون

من موسوعة حسوب
مراجعة 15:28، 27 أغسطس 2018 بواسطة Mohammed Taher (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>weakref.WeakMethod()‎</code> في بايثون}}</noinclude> صنف فرعي خاصّ من الصنف ref يحاكي إش...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)


صنف فرعي خاصّ من الصنف ref يحاكي إشارة ضعيفة إلى تابع مرتبط bound method (أي تابع معرف في صنف وجرى البحث عنه في نسخة من ذلك الصنف).

ملاحظة: هذا الصنف جديد في الإصدار 3.4.

البنية العامة

class weakref.WeakMethod(method)

المعاملات

dict

التابع المراد إنشاء محاكاة لإشارة ضعيفة إليه.

التوابع المرتبطة سريعة الزوال ما يمنع من تمسّك الإشارات الضعيفة العادية بها. يمتلك الصنف WeakMethod طريقة خاصة لإعادة إنشاء التابع المرتبط والإبقاء عليه إلى أن يموت الكائن أو الدالة الأصلية:

>>> class C:
...     def method(self):
...         print("method called!")
...
>>> c = C()
>>> r = weakref.ref(c.method)
>>> r()
>>> r = weakref.WeakMethod(c.method)
>>> r()
<bound method C.method of <__main__.C object at 0x7fc859830220>>
>>> r()()
method called!
>>> del c
>>> gc.collect()
0
>>> r()
>>>

مصادر

صفحة Weak references في توثيق بايثون الرسمي.