Modul kelas data Python memudahkan penciptaan kelas yang digunakan untuk menyimpan data.
Walaupun kebanyakan orang tahu tentang penggunaan asas, terdapat medan ciri yang kurang dikenali(default_factory=...) yang boleh menjadi sangat berguna untuk mengendalikan nilai lalai dalam jenis boleh ubah.
Apabila mentakrifkan kelas data, anda mungkin mahu menggunakan nilai lalai boleh ubah, seperti senarai atau kamus.
Menggunakan lalai boleh ubah secara langsung boleh menyebabkan tingkah laku yang tidak dijangka disebabkan oleh cara argumen lalai dikongsi merentas kejadian.
Fungsi default_factory menyediakan cara yang bersih untuk mengendalikan lalai boleh ubah.
Ini contoh mudah:
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])
Dalam contoh ini, gred dimulakan dengan senarai kosong untuk setiap tika Pelajar baharu.
Menggunakan medan(default_factory=list) memastikan bahawa setiap kejadian mendapat senarai tersendiri, mengelakkan perangkap lalai boleh ubah dikongsi.
Ciri default_factory sangat berharga untuk mengelakkan isu biasa dengan argumen lalai boleh ubah.
Ia membantu memastikan setiap tika kelas data mempunyai nilai lalainya sendiri, menjadikan kod anda lebih mudah diramal dan mengelakkan pepijat halus yang berkaitan dengan keadaan kongsi.
Atas ialah kandungan terperinci Trik Python: Menggunakan kelas data dengan medan(default_factory=...). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!