الكائنات غير القابلة للتغيير في بايثون
في بايثون، توفر الثبات آلية قيمة لحماية سلامة البيانات. ومع ذلك، فإن إنشاء كائنات غير قابلة للتغيير يمثل بعض التحديات.
تجاوز
هناك طريقة شائعة تتمثل في تجاوزsetattr طريقة. ومع ذلك، يتم استدعاء هذه الطريقة حتى أثناء عملية init، مما يجعلها غير مناسبة لإنشاء كائنات غير قابلة للتغيير.
تصنيف فرعي للصفوف
تتضمن استراتيجية أخرى فئة فرعية من الصف. تضمن هذه التقنية الثبات عن طريق التجاوز المباشر للطريقةالجديدة. ومع ذلك، فإنه يعرض العناصر الأساسية للصف مثل الذات[0] والذات[1]، مما يعرض للخطر عدم إمكانية الوصول إليها.
سميت المجموعة كحل
لأبسط وأكثر الحل الفعال، فكر في استخدام مجموعات Python.namedtuple. تقوم هذه الوظيفة بإنشاء نوع يشبه الصف يشبه فئة، ويتميز بسمات مسماة. Immutable = Collections.namedtuple("Immutable", ["a", "b"])يظهر هذا النهج العديد من المزايا:تنفيذ Namedtuple
يتم اشتقاق الصفوف المسماة من الصفوف والاستفادة منالفتحات لضمان الثبات. هذا مشابه لنهج الفئات الفرعية، ولكن مع فائدة إضافية تتمثل في السمات المسماة.
توافق بايثون 2.6
تم تقديم الصفوف المسماة في بايثون 2.6، مما يضمن التوافق مع بايثون الأقدم. الإصدارات.الاستنتاج
على الرغم من وجود طرق مختلفة لإنشاء كائنات غير قابلة للتغيير في بايثون، إلا أن الصفوف المسماة توفر حلاً مناسبًا وفعالًا يلبي الحاجة إلى الثبات في برمجة بايثون.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3