- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Python'da çift alt çizgi ile başlayan ve biten metotlara (örneğin __init__, __str__) Özel Metotlar (Special Methods) veya Dunder (Double Under Score) Metotlar denir.
Bu metotlar, bizim çağırmamız için değil, Python yorumlayıcısının dahili işlemleri tetiklendiğinde otomatik olarak çağrılması için tasarlanmıştır.
Özel metotların en güçlü kullanım alanı, Python'ın yerleşik operatörlerini (örneğin +, -, ==, *) kendi sınıf nesnelerimiz için yeniden tanımlamaktır. Buna Operatör Aşırı Yükleme denir.
Amaç: Kendi nesnelerimizin de int veya str gibi yerleşik tiplerle doğal bir şekilde etkileşime girmesini sağlamak.
| Python Operatörü/Fonksiyonu | Tetiklenen Dunder Metot | Açıklama |
a + b | a.__add__(b) | Toplama işlemi. |
a == b | a.__eq__(b) | Eşitlik karşılaştırması. |
a < b | a.__lt__(b) | "Küçüktür" karşılaştırması. |
len(a) | a.__len__() | Uzunluk fonksiyonu. |
a() | a.__call__() | Nesneyi fonksiyon gibi çağırma. |
__add__)class Puan:
def __init__(self, deger):
self.deger = deger
# __add__ metodu ile '+' operatörünü yüklüyoruz
def __add__(self, diger_puan):
# 'diger_puan' parametresi, '+' işaretinden sonraki
#nesneyi alır.
if isinstance(diger_puan, Puan):
# Eğer diğer nesne de Puan ise, değerleri toplar
yeni_deger = self.deger + diger_puan.deger
return Puan(yeni_deger) # Yeni bir Puan nesnesi döndürülür
else:
# Puan değilse, toplama işlemini desteklemediğimizi
#belirtiriz
raise TypeError("Sadece 'Puan' nesneleri toplanabilir.")
def __str__(self):
return f"Puan: {self.deger}"
# Kullanım
puan1 = Puan(50)
puan2 = Puan(30)
# Python, '+' operatörünü gördüğünde otomatik olarak
#puan1.__add__(puan2) çağrır.
puan_toplami = puan1 + puan2
print(puan_toplami) # Çıktı: Puan: 80
__len__ Metodu__len__ metodunu kullanarak, kendi koleksiyon sınıfınızın len() yerleşik fonksiyonuyla çalışmasını sağlayabilirsiniz.
class Koleksiyonum:
def __init__(self, veriler):
self.veriler = veriler
def __len__(self):
# len() çağrıldığında bu metot çalışır
return len(self.veriler)
k = Koleksiyonum([10, 20, 30])
print(len(k)) # Çıktı: 3 (Kendi __len__ metodumuzdan geldi)🔥 Python Kariyerinizi Hemen Başlatın!
Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.
[ Python Eğitimi Sıfırdan İleri Seviye ]
Tıklayın ve Python Eğitimine Hemen Kaydolun!
Yorumlar
Yorum Gönder