Nesne yönelimli programlama
Sınıf, nesne, metot, __init__ ve kalıtım.
Tüm dersler · Python dersleri: sıfırdan öğren
Sınıf ve nesne
Sınıf nesnenin planıdır, nesne ise bu plandan üretilen somut örnektir. Örneğin Hesap sınıfından her müşteri için ayrı nesne oluşur. __init__ metodu nesne oluşurken çalışır, self ise nesnenin kendisidir.
class Account:
def __init__(self, owner, balance=0):
self.owner = owner
self.balance = balance
def deposit(self, amount):
self.balance += amount
def show(self):
print(f"{self.owner}: {self.balance} AZN")
a = Account("Rena", 50)
a.deposit(25)
a.show() # Rena: 75 AZN- Öznitelikler nesnenin durumunu saklar.
- Metotlar nesnenin yapabildiği işlerdir.
Kalıtım
Kalıtım, yeni bir sınıfın var olan sınıfın olanaklarını devralmasını sağlar. Alt sınıf ana sınıfın metotlarını alır, isterse değiştirir (override) veya super() ile ana sınıfı çağırır.
class Account:
def __init__(self, owner, balance=0):
self.owner, self.balance = owner, balance
class SavingsAccount(Account):
def __init__(self, owner, balance=0, rate=0.05):
super().__init__(owner, balance)
self.rate = rate
def add_interest(self):
self.balance *= 1 + self.rate
s = SavingsAccount("Tural", 200)
s.add_interest()
print(s.balance) # 210.0Özel metotlar ve bir uyarı
__str__ nesnenin print ile nasıl görüneceğini belirler, __len__ len() ile çalışmasını sağlar. Çift alt çizgi dilin özel kancalarını işaretler.
class Playlist:
def __init__(self, songs):
self.songs = songs
def __len__(self):
return len(self.songs)
def __str__(self):
return "Playlist: " + ", ".join(self.songs)
p = Playlist(["A", "B"])
print(p, len(p))Öneri: her şeyi sınıfa çevirmek gerekmez. Basit bir hesap için fonksiyon yeterlidir; sınıf, durum ve davranış birlikte gerektiğinde işe yarar.