Programlama

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.

Yazar: Nibras Code