Theme
Primary Color

تجنب القوائم المشتركة داخل dataclass

ال default_factory بتنشئ قيمة جديدة لكل كائن بدل مشاركة نفس القائمة بين الكائنات

قائمة مستقلة لكل كائن

المصنع list بيتنفذ عند إنشاء كل كائن محتاج القيمة الإفتراضية

from dataclasses import dataclass, field

@dataclass
class Student:
    skills: list = field(default_factory=list)

first = Student()
second = Student()
first.skills.append("Python")
print(first.skills)
print(second.skills)

النتيجة

['Python']
[]

تحديد قيمة عند الإنشاء

لو بعت قائمة بنفسك بتستخدم بدل القيمة الناتجة من المصنع

from dataclasses import dataclass, field

@dataclass
class Student:
    skills: list = field(default_factory=list)

student = Student(skills=["HTML", "CSS"])
print(student.skills)

النتيجة

['HTML', 'CSS']
python شرح