Python'da Nesne Yönelimli Programlama
Alex Yarosh
Content Quality Analyst @ DataCamp

# list_of_accounts içindeki her bir hesaptan miktar çek def batch_withdraw(list_of_accounts, amount): for acct in list_of_accounts: acct.withdraw(amount)b, c, s = BankAccount(1000), CheckingAccount(2000), SavingsAccount(3000) batch_withdraw([b,c,s]) # <-- Önce BankAccount.withdraw(), # sonra CheckingAccount.withdraw(), # sonra SavingsAccount.withdraw() kullanılır
batch_withdraw() hangi withdraw() çağrılacağını bilmek için nesneyi kontrol etmez
Taban sınıf, programın özelliklerini değiştirmeden herhangi bir alt sınıfıyla değiştirilebilir olmalıdır
BankAccount'un çalıştığı her yerde CheckingAccount da çalışmalıdır

Taban sınıf, programın özelliklerini değiştirmeden herhangi bir alt sınıfıyla değiştirilebilir olmalıdır
→ Sözdizimsel uyumsuzluk
BankAccount.withdraw() 1 parametre gerektirir, ancak CheckingAccount.withdraw() 2 gerektirir
→ Alt sınıfın giriş koşullarını güçlendirmesi
BankAccount.withdraw() herhangi bir miktarı kabul eder, ancak CheckingAccount.withdraw() miktarın sınırlı olduğunu varsayar
→ Alt sınıfın çıkış koşullarını zayıflatması
BankAccount.withdraw() yalnızca pozitif bakiye bırakabilir veya hata oluşturabilir, CheckingAccount.withdraw() negatif bakiye bırakabilir
→ Alt sınıf metodunda ek niteliklerin değiştirilmesi
→ Alt sınıf metodunda ek istisnaların atılması
$$\text{\textbf{\Huge{LSP Yoksa -- Kalıtım Yok}}}$$
Python'da Nesne Yönelimli Programlama