تعمل وحدة فئات البيانات في بايثون على تبسيط عملية إنشاء الفئات المستخدمة لتخزين البيانات.
بينما يعرف معظم الأشخاص عن الاستخدام الأساسي، هناك حقل ميزات أقل شهرة (default_factory=...) يمكن أن يكون مفيدًا بشكل لا يصدق للتعامل مع القيم الافتراضية في الأنواع القابلة للتغيير.
عند تحديد فئة بيانات، قد ترغب في استخدام قيمة افتراضية قابلة للتغيير، مثل قائمة أو قاموس.
يمكن أن يؤدي استخدام افتراضي قابل للتغيير مباشرة إلى سلوك غير متوقع بسبب الطريقة التي تتم بها مشاركة الوسائط الافتراضية عبر المثيلات.
توفر وظيفة default_factory طريقة نظيفة للتعامل مع الإعدادات الافتراضية القابلة للتغيير.
إليك مثال بسيط:
from dataclasses import dataclass, field from typing import List @dataclass class Student: name: str grades: List[int] = field(default_factory=list) # Use default_factory for mutable default # Create new Student instances student1 = Student(name="Alice") student2 = Student(name="Bob", grades=[90, 85]) # Modify student1's grades student1.grades.append(95) print(student1) # Output: Student(name='Alice', grades=[95]) print(student2) # Output: Student(name='Bob', grades=[90, 85]) # Output: # Student(name='Alice', grades=[95]) # Student(name='Bob', grades=[90, 85])
في هذا المثال، تتم تهيئة الدرجات بقائمة فارغة لكل مثيل طالب جديد.
باستخدام field(default_factory=list) يضمن حصول كل مثيل على قائمته المنفصلة، وتجنب مخاطر الإعدادات الافتراضية المشتركة القابلة للتغيير.
تعد ميزة default_factory لا تقدر بثمن لتجنب المشكلات الشائعة المتعلقة بالوسيطات الافتراضية القابلة للتغيير.
يساعد على التأكد من أن كل مثيل لفئة البيانات له قيمته الافتراضية الخاصة، مما يجعل التعليمات البرمجية الخاصة بك أكثر قابلية للتنبؤ بها وتجنب الأخطاء الدقيقة المتعلقة بالحالة المشتركة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3