Lập trình Hướng đối tượng Nâng cao với Python
Jake Roach
Data Engineer
Một loại lớp đặc biệt chỉ gồm các phương thức trừu tượng để tạo hợp đồng với các lớp triển khai giao diện
$$
$$
Bắt đầu với giao diện không chính thức!

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() và grade_assignment()class 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
Giao diện chính thức khác gì so với lớp cơ sở trừu tượng?
Giao diện (Interface)
Lớp cơ sở trừu tượng (ABC)
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: Can't instantiate abstract class ProgrammingCourse with abstract method
grade_assignment
Lập trình Hướng đối tượng Nâng cao với Python