dataclasses
Python dataclasses moduli
❮ Python o‘rnatilgan modullari
Misol
Oddiy ma’lumotlar sinfini (data class) yarating va uni chiqaring:
from dataclasses import dataclass
@dataclass
class Point:
x: int
y: int
p = Point(1, 2)
print(p)
O‘zingiz sinab ko‘ring »
Ta’rif va qo‘llanilishi
dataclasses moduli __init__, __repr__ kabi metodlarni va taqqoslash metodlarini avtomatik yaratib, asosan ma’lumot saqlaydigan sinflarni yozishga yordam beradi.
Undan oddiy ma’lumot konteynerlari uchun takroriy (boilerplate) kodni kamaytirish, maydonlarni standart qiymatlar/metama’lumotlar bilan sozlash va nusxalarni dict/tuple’larga aylantirish uchun foydalaning.
A’zolar
| A’zo | Tavsif |
|---|---|
| asdict() | Dataclass nusxasining maydonlarini maydon nomlarini qiymatlarga moslovchi yangi dict sifatida qaytaradi. |
| astuple() | Dataclass nusxasining maydonlarini qiymatlar tuple’i sifatida qaytaradi. |
| dataclass() | Avtomatik yaratilgan metodlarni qo‘shib, dataclass tiplarini yaratish uchun dekorator. |
| Field | Dataclass maydonini tavsiflovchi tip (nomi, tipi, standart qiymati, metama’lumotlari). |
| field() | Dataclass maydonining atributlarini belgilaydi (default, default_factory, metadata va h.k.). |
| fields() | Dataclass maydonlarini tavsiflovchi tuple qaytaradi. |
| FrozenInstanceError | Muzlatilgan (frozen) dataclass maydoniga qiymat berilganda yuzaga keladi. |
| InitVar | Maydonni faqat initsializatsiya uchun (init-only) deb belgilaydi (__init__ga uzatiladi, lekin saqlanmaydi). |
| is_dataclass() | Agar obyekt dataclass yoki uning nusxasi bo‘lsa, True qaytaradi. |
| KW_ONLY | Keyingi maydonlarni faqat kalit so‘z orqali beriladigan (keyword-only) deb e’lon qilish uchun maxsus belgi-qiymat (sentinel). |
| make_dataclass() | Yangi dataclass tipini dinamik ravishda yaratadi. |
| MISSING | Maydonning standart qiymati yo‘qligini bildiruvchi maxsus belgi-qiymat (sentinel). |
| replace() | Ko‘rsatilgan maydonlari almashtirilgan yangi nusxa yaratadi. |
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
