Python'da Özel Metotlar: __init__ ve __str__ Kullanımı

Python'da sınıf tanımlarken başında ve sonunda çift alt çizgi olan metotlar vardır. Bunlara dunder (double underscore) metotlar denir. En çok kullanılan ikisi __init__ ve __str__'dir.

__init__ Metodu Nedir?

__init__

, bir sınıftan yeni nesne oluşturulduğunda otomatik olarak çalışan başlatıcı metottur. Nesnenin ilk değerlerini (özellikleri) ayarlamak için kullanılır. Örneğin bir Kişi sınıfı oluştururken, her kişinin adı ve yaşı olmalıdır. __init__ bu bilgileri nesneye atanır.

__str__ Metodu Nedir?

__str__

, nesneyi yazı olarak temsil etmek için kullanılır. Bir nesneyi print() ile yazdırdığında, __str__ metodu çalışır ve okunabilir bir metin döndürür. Aksi takdirde ekrana nesnenin bellek adresi gibi anlaşılmaz bir şey çıkar.

Pratik Örnek: Kitap Sınıfı

Bir kitap yönetim sistemi yapalım. Her kitabın adı, yazarı ve yayın yılı olacak.

1class Kitap:
2def __init__(self, ad, yazar, yil):
3self.ad = ad
4self.yazar = yazar
5self.yil = yil
6
7def __str__(self):
8return f"{self.ad} - {self.yazar} ({self.yil})"
9
10kitap1 = Kitap("1984", "George Orwell", 1949)
11kitap2 = Kitap("Dune", "Frank Herbert", 1965)
12
13print(kitap1)
14print(kitap2)

Çıktı:

11984 - George Orwell (1949)
2Dune - Frank Herbert (1965)

Adım Adım Açıklama

1. Sınıf tanımlarken __init__ metodu self ve parametrelerle başlar.
2. self.ad = ad gibi satırlar, nesneye ait özellikleri kaydeder.
3. __str__ metodu return ile okunabilir bir metin döndürür.
4. Kitap(...) ile yeni nesne oluşturulunca __init__ otomatik çalışır.
5. print(kitap1) yazıldığında __str__ çalışır ve güzel bir çıktı gösterir.

__init__

ve __str__ öğrendikten sonra, sınıflarla çalışmak çok daha kolay hale gelir. Nesne yönetimi daha düzenli ve okunabilir olur.

konu hakkında tepkinizi verebilirsiniz