Python'da Orta Düzey Nesne Yönelimli Programlama
Jake Roach
Data Engineer
Yalnızca soyut yöntemlerden oluşan ve arayüzü uygulayan sınıflarla bir sözleşme kuran özel bir sınıf türü
$$
$$
Önce gayriresmî arayüzlerle başlayalım!

class Course:
def assign_homework(self, assignment_number, due_date):
# Typically, the pass keyword will be used when creating an interface
pass
def grade_assignment(self, assignment_number):
pass
assign_homework() ve grade_assignment() soyut yöntemlericlass ProgrammingCourse:
def __init__(self, course_name):
self.course_name = course_name
def assign_homework(self, due_date):
# Some implementation of assign_homework here...
def grade_assignment(self, assignment_number):
# Some implementation of grade_assignment here...
from abc import ABC, abstractmethod
class Course(ABC):
@abstractmethod
def assign_homework(self, assignment_number, due_date):
pass
@abstractmethod
def grade_assignment(self, assignment_number):
pass
Resmî arayüzler, soyut temel sınıflardan nasıl farklıdır?
Arayüzler
Soyut temel sınıflar
class ProgrammingCourse(Course): def __init__(self, course_name): self.course_name = course_name def assign_homework(self, due_date): # Some implementation of assign_homework here... def grade_assignment(self, assignment_number): # Some implementation of grade_assignment here...intermediate_oop = ProgrammingCourse("Intermediate Object-Oriented Programming")
class ProgrammingCourse(Course): def __init__(self, course_name): self.course_name = course_name def assign_homework(self, due_date): # Some implementation of assign_homework here...intermediate_oop = ProgrammingCourse("Intermediate Object-Oriented Programming")
...
intermediate_oop = ProgrammingCourse("Intermediate Object-Oriented Programming")
TypeError: Soyut yönteme sahip ProgrammingCourse soyut sınıfı somutlanamaz
grade_assignment
Python'da Orta Düzey Nesne Yönelimli Programlama