CodeBlanks Logo Icon CodeBlanks

asdict ve astuple

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

main.py
# Point örneğini asdict ve astuple ile çevir

Örnek çözüm

main.py
# 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

Soru
from dataclasses import dataclass, ____

@dataclass
class Point:
    x: int = 0
    y: int = 0
Cevap
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

Orta seviye bölümündeki tüm dersler