Operatör Aşırı Yükleme: Karşılaştırma

Python'da Nesne Yönelimli Programlama

Alex Yarosh

Content Quality Analyst @ DataCamp

Nesne Eşitliği

class Customer:
  def __init__(self, name, balance):
    self.name, self.balance = name, balance  


customer1 = Customer("Maryam Azar", 3000)
customer2 = Customer("Maryam Azar", 3000)

customer1 == customer2
False
Python'da Nesne Yönelimli Programlama

Nesne Eşitliği

class Customer:
  def __init__(self, name, balance, id):
    self.name, self.balance = name, balance
    self.id = id    

customer1 = Customer("Maryam Azar", 3000, 123)
customer2 = Customer("Maryam Azar", 3000, 123)
customer1 == customer2
False
Python'da Nesne Yönelimli Programlama

Değişkenler Referanstır

customer1 = Customer("Maryam Azar", 3000, 123)
customer2 = Customer("Maryam Azar", 3000, 123)
print(customer1)
<__main__.Customer at 0x1f8598e2e48>
print(customer2)
<__main__.Customer at 0x1f8598e2240>
Python'da Nesne Yönelimli Programlama

Özel Karşılaştırma

import numpy as np

# Aynı veriyi içeren iki farklı dizi
array1 = np.array([1,2,3])
array2 = np.array([1,2,3])

array1 == array2
True
Python'da Nesne Yönelimli Programlama

__eq__() Aşırı Yükleme

class Customer:
  def __init__(self, id, name):
    self.id, self.name = id, name

# == kullanıldığında çağrılır def __eq__(self, other):
# Tanılayıcı çıktı print("__eq__() çağrıldı") # Tüm özellikler eşleşirse True döner return (self.id == other.id) and \ (self.name == other.name)

 

 

  • __eq__() iki nesne == ile karşılaştırıldığında çağrılır
  • self ve other olmak üzere iki argüman alır - karşılaştırılacak nesneler
  • Boolean döner
Python'da Nesne Yönelimli Programlama

Nesnelerin Karşılaştırılması

# İki eşit nesne

customer1 = Customer(123, "Maryam Azar")
customer2 = Customer(123, "Maryam Azar")

customer1 == customer2
__eq__() çağrıldı
True
# İki eşit olmayan nesne - farklı id'ler

customer1 = Customer(123, "Maryam Azar")
customer2 = Customer(456, "Maryam Azar")

customer1 == customer2
__eq__() çağrıldı
False
Python'da Nesne Yönelimli Programlama

Diğer Karşılaştırma Operatörleri

Operatör Metot
== __eq__()
!= __ne__()
>= __ge__()
<= __le__()
> __gt__()
< __lt__()
  • __hash__() nesneleri sözlük anahtarı ve kümelerde kullanmak için
Python'da Nesne Yönelimli Programlama

Hadi Pratik Yapalım!

Python'da Nesne Yönelimli Programlama

Preparing Video For Download...