namedtuple
- Python kursu
- Orta seviye
- Ders 92/116
- 4 dk
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
# Point namedtuple tanımlaÖrnek çözüm
# 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ı
from collections import namedtuple
Point = ____("Point", ["x", "y"])
p = Point(3, 4)
print(p.x)
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 |