CodeBlanks Logo Icon CodeBlanks

namedtuple

namedtuple ile isimli demetleri öğrenirsin.

namedtuple

namedtuple, demet (tuple) gibi değişmez ama alanlara isimle erişilebilen bir veri türüdür. collections modülünden gelir; küçük ve değişmez veri yapıları için idealdir.

Örnek: Point = namedtuple("Point", ["x", "y"]). Bu bir sınıf üretir; p = Point(3, 4) ile örnek oluşturursun. p.x ve p.y ile alanlara isimle erişirsin; p[0] ve p[1] ile de indeksle. Demet gibi değişmez; p.x = 5 yazamazsın.

Ne zaman kullanılır?

namedtuple, küçük ve değişmez veri kümeleri için idealdir. Örnek: bir nokta, bir koordinat, bir renk (RGB). Veri sınıfı (dataclass) daha ağır bir çözüm olduğunda ve yalnızca birkaç alan gerektiğinde namedtuple daha hafiftir.

Demet gibi hash edilebilir; sözlük anahtarı olabilir. len(p) alan sayısını verir. p._asdict() metodu ile sözlüğe çevirebilirsin. Bellek tüketimi normal sınıftan daha azdır.

Uygulama Point namedtuple tanımla

from collections import namedtuple ile başla. Point = namedtuple("Point", ["x", "y"]) ile bir namedtuple üret. p = Point(3, 4) ile örnek oluştur ve print(p.x, p.y) ile yazdır.

Başlangıç kodu

main.py
# Point namedtuple tanımla

Örnek çözüm

main.py
# Point namedtuple tanımla
from collections import namedtuple

Point = namedtuple("Point", ["x", "y"])
p = Point(3, 4)
print(p.x, p.y)

Beklenen çıktı

3 4

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 namedtuple nasıl erişime izin verir?

  • Yalnızca indeksle
  • Yalnızca isimle
  • Hem isimle hem indeksle Doğru cevap
  • Yalnızca metotla

Açıklama: namedtuple iki yolu da destekler.

2 namedtuple tanımı

Soru
from collections import namedtuple

Point = ____("Point", ["x", "y"])
p = Point(3, 4)
print(p.x)
Cevap
from collections import namedtuple

Point = namedtuple("Point", ["x", "y"])
p = Point(3, 4)
print(p.x)

Açıklama: namedtuple işlevi yeni bir sınıf üretir.

3 namedtuple parçalarını eşleştir

Kavram Anlamı
namedtuple İşlev
Point Üretilen sınıf
p.x İsimle erişim
p[0] İndeksle erişim

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