NamedTuple Temelleri
Hafif, değişmez kayıtlar oluşturun
NamedTuple Temelleri, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Adlandırılmış Demet Nedir?
Adlandırılmış demet, konumlarının yanı sıra adları da olan bir demettir. Bir demetin hafif ve değişmez yapısını, okunabilir öznitelik erişimiyle bir arada sunar. Küçük kayıtlar için idealdir.
Sade Demetlerle İlgili Sorun
Sade demetler konum tabanlıdır; bu nedenle her dizinin ne anlama geldiğini hatırlamanız gerekir. p[0] ve p[1] gibi kodları yanlış yazmak kolaydır.
point = (1, 2)
print(point[0]) # x?
print(point[1]) # y?namedtuple ile Oluşturma
collections.namedtuple fabrikası yeni bir demet alt sınıfı oluşturur. Tür adını ve alan adlarını iletin.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p)Ada Göre Erişim
Artık alanları dizin yerine adlarına göre okuyabilirsiniz; bu da kodun kendini açıklamasını sağlar.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x)
print(p.y)Hâlâ Bir Demet
Adlandırılmış demet hâlâ gerçek bir demettir; bu nedenle dizinleme, açma ve yineleme her zamanki gibi çalışır.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p[0])
x, y = p
print(x, y)Değişmezlik
Tüm demetler gibi adlandırılmış demetler de değişmezdir. Bir alana değer atamayı denemek AttributeError hatasına yol açar.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
try:
p.x = 99
except AttributeError as e:
print('Cannot modify:', e)Değiştirilmiş Kopya Oluşturma
Onu değiştiremeyeceğiniz için bazı alanları değiştirilmiş yeni bir örnek oluşturmak üzere _replace() yöntemini kullanın.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
q = p._replace(y=99)
print(p)
print(q)Sözlüğe Dönüştürme
_asdict() yöntemi alanları bir sözlük olarak döndürür; bu, serileştirme veya günlük kaydı için kullanışlıdır.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p._asdict())Alanları İnceleme
_fields özniteliği alan adlarını listeler. Kayıt alanları üzerinde yineleme yapan genel amaçlı kodlar için kullanışlıdır.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
print(Point._fields)Varsayılan Değerler
defaults bağımsız değişkeniyle varsayılan değerler sağlayın. Varsayılanlar, işlev parametresi varsayılanlarında olduğu gibi en sağdaki alanlara uygulanır.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y', 'z'], defaults=[0])
print(Point(1, 2))
print(Point(1, 2, 9))Birden Çok Değer Döndürme
Adlandırılmış demetler, işlevlerin dönüş değerleri olarak çok kullanışlıdır. Anonim bir demet döndürmek yerine, çağıranların alanları adlarına göre okuyabilmesi için adlandırılmış bir demet döndürün.
from collections import namedtuple
Stats = namedtuple('Stats', ['minimum', 'maximum'])
def analyze(nums):
return Stats(min(nums), max(nums))
r = analyze([3, 1, 9, 4])
print(r.minimum, r.maximum)Hızlı Kontrol
Adlandırılmış bir demet örneğinin değiştirilmiş kopyasını nasıl oluşturursunuz?
Özet
Hafif ve değişmez kayıtlar oluşturmayı öğrendiniz.
namedtuple, demetlere alan adları ekler.- Alanlara adlarıyla veya dizinleriyle erişebilirsiniz; açma işlemi hâlâ çalışır.
- Değiştirilmiş kopyalar için
_replace(), dönüştürme için_asdict()kullanın. _fieldsadları listeler;defaultsvarsayılanları belirler.
Sıkça Sorulan Sorular
“NamedTuple Temelleri” dersi ücretsiz mi?
Evet — “NamedTuple Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“NamedTuple Temelleri” dersinde ne öğreneceğim?
Hafif, değişmez kayıtlar oluşturun Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“NamedTuple Temelleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Enum Sınıfı
- IntEnum ve Flag
- NamedTuple Temelleri
- typing.NamedTuple