Bu örnekte, bir karmaşık sayı sınıfı oluşturarak bu sınıf için operatör aşırı yüklemesini nasıl kullanabileceğinizi ele alıyoruz. Örnekte karmaşık sayılar ile toplama,çıkarma ve bölme işlemlerini tanımlayacağız .
Toplama :
Karmaşık sayılar toplanırken reel kısımlar kendi aralarında ve sanal kısımlar kendi aralarında toplanır .
Çıkarma :
Karmaşık sayılar çıkarılırken reel kısımların farkı ve sanal kısımların farkı alınır .
Çarpma :
sayi1=a+ib ve sayi2=x+iy olmak üzere ;
sayi1*sayi2=(a*x-b*y) +i(a*y+b*x) şeklinde hesaplanır .
Aşağıdaki kodlarda oluşturulan karmaşık sayı sınıfı için operatör yüklenmesinin nasıl yapıldığı gösterilmektedir .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | class Complex(object): def __init__(self, real, imag=0.0): self.real = real self.imag = imag def __add__(self, other): return Complex(self.real + other.real, self.imag + other.imag) def __sub__(self, other): return Complex(self.real - other.real, self.imag - other.imag) def __mul__(self, other): return Complex(self.real*other.real - self.imag*other.imag, self.imag*other.real + self.real*other.imag) def __str__(self): return 'Sonuç = : (%d, %di)' % (self.real, self.imag) cSayi1=Complex(1,4) cSayi2=Complex(3,8) topla=cSayi1+cSayi2 cikar=cSayi1-cSayi2 carp=cSayi1*cSayi2 print("Toplam ",topla) print("Çıkarma ",cikar) print("Çarpma " , carp) |
Ekran Çıktısı :