Soyut Temel Sınıflar

Python'da Orta Düzey Nesne Yönelimli Programlama

Jake Roach

Data Engineer

Soyut temel sınıflar

Soyut temel sınıflar, tüm alt sınıfların uygulaması gereken soyut yöntemleri tanımlayarak sınıflar için bir kalıp oluşturur

  • Sınıf grubunda ortak davranışı sağlar
  • @abstractmethod dekoratörü
  • Örneklenmek için değil, miras almak için tasarlanır
  • Tüm yöntemlerin soyut olması gerekmez (betimleyici/concrete yöntemler olabilir)
class School:
    # enroll gibi işler yap 
    # ve kurs ekle
class MiddleSchool:
    # Bir enstrüman çal, bir kulübe katıl
    # ancak enroll ve kurs ekle şart
class HighSchool:
    # Takım sporuna katıl, üniversiteye başvur
    # ancak enroll ve kurs ekle şart
Python'da Orta Düzey Nesne Yönelimli Programlama

Soyut temel sınıf oluşturma

from abc import ABC, abstractmethod

# ABC'den miras alan bir # soyut temel sınıf oluşturun class School(ABC): @abstractmethod def enroll(self): # Bu yöntem, miras alan sınıflarda # uygulanmalıdır pass
# Concrete yöntemler miras alınır def graduate(self): print("Congrats on graduating!")
  • abc modülündeki ABC sınıfından miras alın
  • pass
  • School'dan miras alan her sınıf enroll() yöntemini uygulamalıdır
  • Concrete yöntemler de eklenebilir
Python'da Orta Düzey Nesne Yönelimli Programlama

Soyut temel sınıfları uygulama

class HighSchool(School):
    def enroll(self):
        print("Welcome to high school!")

# HighSchool örneği oluştur
high_school = HighSchool()
high_school.enroll()
Welcome to high school!
high_school.graduate()
Congrats on graduating!
  • HighSchool enroll() yöntemini tanımlamak zorundadır
  • enroll() tanımlı değilse TypeError oluşur
  • HighSchool, graduate() yöntemini miras alır
Python'da Orta Düzey Nesne Yönelimli Programlama

Birden çok soyut yöntem

class School(ABC):
    @abstractmethod
    def enroll(self):
        pass

    @abstractmethod
    def add_course(self, course_name):
        pass

    def graduate(self):
        print("Congrats on graduating!")

  • İki soyut yöntem: enroll() ve add_course()
class HighSchool(School):
    def __init__(self):
        self.courses = []

    # Soyut yöntemi uygulama
    def enroll(self):
        print("Welcome to high school!")

    # Soyut yöntemi uygulama
    def add_course(self, course_name):
        self.courses.append(course_name)
        print(f"You enrolled in {course_name}")

Python'da Orta Düzey Nesne Yönelimli Programlama

Hadi pratik yapalım!

Python'da Orta Düzey Nesne Yönelimli Programlama

Preparing Video For Download...