الفرق بين المراجعتين لصفحة: «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()
>>>