"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > الإملاء المجمد: قواميس غير قابلة للتغيير في بايثون - لماذا وكيف؟

الإملاء المجمد: قواميس غير قابلة للتغيير في بايثون - لماذا وكيف؟

تم النشر بتاريخ 2024-11-23
تصفح:411

  Frozen Dict: Immutable Dictionaries in Python - Why and How?

الكشف عن "الإملاء المجمد" الغامض

توفر القواميس في بايثون طريقة متعددة الاستخدامات لتخزين البيانات. ومع ذلك، قد تنشأ مواقف حيث يكون من المرغوب فيه الحصول على نسخة غير قابلة للتغيير من القاموس. أدخل المفهوم الافتراضي لـ "الإملاء المجمد."

مثل المجموعة المجمدة هي نسخة غير قابلة للتغيير من مجموعة، والمجموعة هي نسخة غير قابلة للتغيير من القائمة، فإن الإملاء المجمد سيقدم نظيرًا غير قابل للتغيير لـ القاموس القابل للتغيير. يجب أن تحتفظ بوظيفة القيمة الرئيسية، وتوفر قابلية التجزئة، وتدعم العمليات المشتركة مثل التكرار، والوصول إلى المفتاح، والتحقق من المساواة.

في غياب نوع التجميد المدمج في بايثون، سعى المطورون إلى إيجاد حلول بديلة. يتضمن أحد الأساليب إنشاء فئة مجمعة مخصصة، كما يتضح من التعليمات البرمجية المقدمة في الإجابة.

تحاكي فئة المجمع هذه سلوك الإملاء، وتنفيذ أساليب التكرار، واسترجاع العناصر، والتجزئة. تتضمن وظيفة التجزئة جميع أزواج القيمة الرئيسية لضمان مقارنة متسقة للكائنات.

باستخدام الغلاف، يمكن إنشاء إملاء مجمّد واستخدامه تمامًا مثل الإملاء العادي:

>>> x = FrozenDict(a=1, b=2)
>>> y = FrozenDict(a=1, b=2)
>>> x is y
False
>>> x == y
True

تظهر كائنات هذه الفئة كلا من الثبات والتجزئة، مما يسمح بالبحث والتخزين بكفاءة. كما هو موضح في أمثلة التعليمات البرمجية، يمكن مقارنتها واستخدامها كمفاتيح في القواميس الأخرى، مع عرض التطبيق العملي لها.

على الرغم من عدم وجودها أصلاً في مكتبات بايثون الأساسية، إلا أنه يمكن تحقيق مفهوم الإملاء المجمد من خلال غلاف مخصص الطبقات، تقدم للمطورين بديلاً مناسبًا وغير قابل للتغيير للقواميس القابلة للتغيير.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3