asdict ve astuple
- Python kursu
- Orta seviye
- Ders 57/116
- 4 dk
dataclasses.asdict ve astuple ile dönüşüm öğrenirsin.
asdict ve astuple
dataclasses modülündeki asdict ve astuple işlevleri, bir veri sınıfı örneğini sırasıyla sözlük ve demet'e çevirir. Bu, veriyi başka biçimde aktarmak için kullanışlıdır.
Örnek: asdict(p) çağrısı {'x': 3, 'y': 4} döner; astuple(p) çağrısı (3, 4) döner. İkisi de dataclasses modülünden içe aktarılır. Veriyi sözlük bekleyen bir API'ye ya da veritabanına aktarırken bu dönüşümler sıklıkla kullanılır.
Hangi biçim ne için?
asdict, sözlük bekleyen API'lere veri aktarırken uygundur; anahtarlar alan adlarıdır. astuple ise sıralı erişim gerektiren ya da konumla parametre alan işlevlere veri aktarırken uygundur.
Örnek: bir Point örneğini save_dict(asdict(p)) ile kaydedebilir, distance(*astuple(p)) ile de bir uzaklık fonksiyonuna açabilirsin. İki dönüşüm de özgün örneği değiştirmez; yeni bir nesne döner.
Uygulama Point'i sözlük ve demete çevir
from dataclasses import dataclass, asdict, astuple ile başla. @dataclass ile Point sınıfını tanımla; x: int = 0 ve y: int = 0 alanlarını ekle. Sonra p = Point(3, 4) ile örnek oluştur ve print(asdict(p)) ile print(astuple(p)) çağrılarını yap.
Başlangıç kodu
# Point örneğini asdict ve astuple ile çevirÖrnek çözüm
# Point örneğini asdict ve astuple ile çevir
from dataclasses import dataclass, asdict, astuple
@dataclass
class Point:
x: int = 0
y: int = 0
p = Point(3, 4)
print(asdict(p))
print(astuple(p))Beklenen çıktı
{'x': 3, 'y': 4}
(3, 4)
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 asdict(p) ne döndürür?
- Liste
- Demet
- Sözlük Doğru cevap
- Küme
Açıklama: asdict örneği sözlüğe çevirir.
2 import satırını tamamla
from dataclasses import dataclass, ____
@dataclass
class Point:
x: int = 0
y: int = 0
from dataclasses import dataclass, asdict, astuple
@dataclass
class Point:
x: int = 0
y: int = 0
Açıklama: asdict ve astuple birlikte içe aktarılır.
3 Dönüşüm işlevlerini eşleştir
| Kavram | Anlamı |
|---|---|
asdict |
Sözlüğe çevirir |
astuple |
Demete çevirir |
{'x': 3, 'y': 4} |
Sözlük sonucu |
(3, 4) |
Demet sonucu |