CodeBlanks Logo Icon CodeBlanks

__add__

__add__ ile operatör aşırı yüklemeyi öğrenirsin.

__add__ metodu

__add__(self, other), + işlecini tanımlar. Genellikle yeni bir örnek döndürür; self'i değiştirmez. Bu, sınıf örnekleri üzerinde matematik gibi işlemler yapmayı sağlar.

Örnek: class Vector:\n def __add__(self, other):\n return Vector(self.x + other.x, self.y + other.y). v1 + v2 yazımı yeni bir Vector döndürür. self.x ve other.x toplanır; sonuç yeni örneğe konur. Bu, değişmez (immutable) tarzda birleşim sağlar.

Yeni örnek döndür

__add__, self'i değiştirmez; yeni bir örnek döndürür. Bu, orijinal örneklerin korunmasını sağlar. İşlem sonrası v1 ve v2 aynı kalır.

Örnek: v3 = v1 + v2 sonrası v1 ve v2 değişmez; v3 yeni örnektir. Bu, matematiksel vektörlerde beklenen davranıştır. Eğer self'i değiştirseydik, v1 += v2 dışında beklenmedik yan etkiler olurdu.

Uygulama Vector sınıfına __add__ ekle

Vector sınıfını tanımla. def __init__(self, x, y): ve gövdede self.x = x ve self.y = y yaz. def __add__(self, other): ekle; gövdede return Vector(self.x + other.x, self.y + other.y) yaz. Sonra v1 = Vector(1, 2), v2 = Vector(3, 4), v3 = v1 + v2 ve print(v3.x) çağrılarını yap.

Başlangıç kodu

main.py
# Vector sınıfını tanımla

Örnek çözüm

main.py
# Vector sınıfını tanımla
class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

v1 = Vector(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2
print(v3.x)

Beklenen çıktı

4

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 __add__ gövdesini tamamla

Soru
class Vector:
    def __add__(self, other):
        return Vector(self.x + ____, self.y + other.y)
Cevap
class Vector:
    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

Açıklama: other.x ile self.x toplanır.

2 v1 + v2 hangi metodu çağırır?

  • __mul__
  • __add__ Doğru cevap
  • __sub__
  • __radd__

Açıklama: + işleci __add__ metodunu çağırır.

3 __add__ kavramlarını eşle

Kavram Anlamı
__add__ + işleci
return Vector(...) Yeni örnek
v1 + v2 İşlem çağrısı

Orta seviye bölümündeki tüm dersler