Sınıf kalıtımı

Python'da Nesne Yönelimli Programlamaya Giriş

George Boorman

Curriculum Manager, DataCamp

Kodu yeniden kullanma

 

1. Biri bunu zaten yaptı

 

  • Paketler, sabit işlevler için idealdir
  • OOP, işlevi özelleştirmek için idealdir

çeşitli python paketlerinin logoları

Python'da Nesne Yönelimli Programlamaya Giriş

Kodu yeniden kullanma

 

1. Biri bunu zaten yaptı

 

2. DRY: Kendini Tekrarlama

çeşitli arayüz öğeleri

Python'da Nesne Yönelimli Programlamaya Giriş

Kodu yeniden kullanma

 

1. Biri bunu zaten yaptı

 

2. DRY: Kendini Tekrarlama

çeşitli arayüz öğelerini kullanmayın

Python'da Nesne Yönelimli Programlamaya Giriş

Kalıtım

 

$$\Large{\text{Yeni sınıf işlevi = Eski sınıf işlevi + ekstra}}$$

Python'da Nesne Yönelimli Programlamaya Giriş

Örnek hiyerarşi

BankAccount sınıfı

Python'da Nesne Yönelimli Programlamaya Giriş

Örnek hiyerarşi

BankAccount'tan türeyen SavingsAccount

Python'da Nesne Yönelimli Programlamaya Giriş

Örnek hiyerarşi

BankAccount'tan türeyen CheckingAccount

Python'da Nesne Yönelimli Programlamaya Giriş

Örnek hiyerarşi

CheckingAccount değiştirilmiş withdraw yöntemiyle

Python'da Nesne Yönelimli Programlamaya Giriş

Sınıf kalıtımını uygulama

class BankAccount:
    def __init__(self, balance):
       self.balance = balance

    def withdraw(self, amount):
        self.balance -= amount


# Class inheriting from BankAccount class SavingsAccount(BankAccount): pass
  • BankAccount: İşlevi genişletilen/devralınan ebeveyn sınıf
  • SavingsAccount: İşlevi devralıp daha fazlasını ekleyen alt/çocuk sınıf
Python'da Nesne Yönelimli Programlamaya Giriş

Çocuk sınıf, ebeveyn verilerinin tümüne sahiptir

# BankAccount'tan kurucu devralınır
savings_acct = SavingsAccount(1000)
type(savings_acct)
__main__.SavingsAccount
# BankAccount'tan öznitelik devralınır
savings_acct.balance
1000
# BankAccount'tan yöntem devralınır
savings_acct.withdraw(300)
Python'da Nesne Yönelimli Programlamaya Giriş

Kalıtım: "is-a" ilişkisi

SavingsAccount, bir BankAccount'tır

(muhtemelen özel özelliklerle)

savings_acct = SavingsAccount(1000)
isinstance(savings_acct, SavingsAccount)
True
isinstance(savings_acct, BankAccount)
True

 

 

acct = BankAccount(500)
isinstance(acct, SavingsAccount)
False
isinstance(acct, BankAccount)
True
Python'da Nesne Yönelimli Programlamaya Giriş

Hadi pratik yapalım!

Python'da Nesne Yönelimli Programlamaya Giriş

Preparing Video For Download...