Python'da Orta Düzey Nesne Yönelimli Programlama
Jake Roach
Data Engineer
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
@abstractmethod dekoratörü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
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ınpassSchool'dan miras alan her sınıf enroll() yöntemini uygulamalıdırclass 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ırenroll() tanımlı değilse TypeError oluşurHighSchool, graduate() yöntemini miras alırclass School(ABC):
@abstractmethod
def enroll(self):
pass
@abstractmethod
def add_course(self, course_name):
pass
def graduate(self):
print("Congrats on graduating!")
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