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

من موسوعة حسوب


صنف ربط Mapping Class ينشئ إشارات ضعيفة إلى المفاتيح. يجري تجاهل عناصر القاموس التي لا تمتلك أي إشارات قوية إلى مفاتيحها، ويمكن الاستفادة من ذلك في ربط بيانات إضافية مع كائن معين يتبع جزءًا آخر في التطبيق دون الحاجة إلى إضافة الخصائص إلى تلك الكائنات، وتظهر أهمّية هذا الأمر مع الكائنات التي تعيد تعريف override قابلية الوصول إلى الخصائص.

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

weakref.WeakKeyDictionary([dict])

المعاملات

dict

القاموس الذي سينشئ هذا الصنف إشارات ضعيفة إلى مفاتيحه.

تنبيه:

لما كان WeakKeyDictionary مبنيًا على قواميس بايثون، فيجب أن لا يتغير حجمه عند المرور على عناصره، وهذا الأمر قد يصبح صعبًا مع WeakKeyDictionary لأنّ الأحداث التي تُنفّذ بواسطة البرنامج أثناء عملية المرور على العناصر قد تتسبّب في اختفاء العناصر من القاموس (كتأثير جانبي لمجموعة garbage).

التابع keyrefs()

تمتلك كائنات WeakKeyDictionary تابعًا إضافيًا يكشف عن الإشارات الداخلية على نحو مباشر. لا يمكن ضمان كون الإشارات "حيّة" في لحظة استخدامها، لذا يجب أن التحقق من نتيجة استدعاء الإشارات قبل استخدامها. يمكن استخدام هذا التابع لتجنب إنشاء إشارات تتسبب في إبقاء جامع القمامة للمفاتيح لفترة أطول من المطلوب.

يعيد التابع كائن تكرار iterable يتضمن الإشارات الضعيفة إلى المفاتيح ولا يحتاج إلى أيّ معاملات.

مصادر

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