0Pricing
Python Academy · Ders

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.
  • _fields adları listeler; defaults varsayı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

  1. Enum Sınıfı
  2. IntEnum ve Flag
  3. NamedTuple Temelleri
  4. typing.NamedTuple
← Python Academy Sayfasına Dön