الفرق بين المراجعتين لصفحة: «Python/weakref/WeakMethod»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>weakref.WeakMethod()‎</code> في بايثون}}</noinclude> صنف فرعي خاصّ من الصنف ref يحاكي إش...'
 
لا ملخص تعديل
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>weakref.WeakMethod()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة <code>weakref.WeakMethod()‎</code> في بايثون}}</noinclude>


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


'''ملاحظة:''' هذا الصنف جديد في الإصدار 3.4.
'''ملاحظة:''' هذا الصنف جديد في الإصدار 3.4.
سطر 17: سطر 17:
التابع المراد إنشاء محاكاة لإشارة ضعيفة إليه.
التابع المراد إنشاء محاكاة لإشارة ضعيفة إليه.


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


<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">

المراجعة الحالية بتاريخ 15:32، 27 أغسطس 2018


صنف فرعي خاصّ من الصنف 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 في توثيق بايثون الرسمي.