Programação Orientada a Objetos Intermediária em Python
Jake Roach
Data Engineer
Classes base abstratas criam um modelo para classes ao definir métodos abstratos que devem ser implementados por todas as filhas
@abstractmethodclass School:
# Fazer coisas como matricular
# e adicionar um curso
class MiddleSchool:
# Tocar um instrumento, entrar em um clube
# mas deve matricular e adicionar cursos
class HighSchool:
# Praticar esporte do time, candidatar-se
# à faculdade, mas deve matricular
# e adicionar cursos
from abc import ABC, abstractmethod# Crie uma classe base abstrata que herda # de ABC class School(ABC): @abstractmethod def enroll(self): # Este método deve ser implementado # em classes que herdam dela pass# Métodos concretos são herdados def graduate(self): print("Congrats on graduating!")
ABC no módulo abcpassSchool deve implementar enroll()class HighSchool(School):
def enroll(self):
print("Welcome to high school!")
# Crie uma instância de HighSchool
high_school = HighSchool()
high_school.enroll()
Welcome to high school!
high_school.graduate()
Congrats on graduating!
HighSchool deve definir um método enroll()TypeError se enroll() não for definidoHighSchool herda o método graduate()class School(ABC):
@abstractmethod
def enroll(self):
pass
@abstractmethod
def add_course(self, course_name):
pass
def graduate(self):
print("Congrats on graduating!")
enroll() e add_course()class HighSchool(School):
def __init__(self):
self.courses = []
# Implementando método abstrato
def enroll(self):
print("Welcome to high school!")
# Implementando método abstrato
def add_course(self, course_name):
self.courses.append(course_name)
print(f"You enrolled in {course_name}")
Programação Orientada a Objetos Intermediária em Python