Phyton/
Создать иерархию классов для описания академии.
Примерный список классов: Person, Teacher, Student, Subject, Academy и тд.
Продумать архитектуру: реализовать принципы ООП.
Помогите решить задание.
Ответы
Конечно! Вот примерная архитектура иерархии классов для описания академии, с использованием принципов объектно-ориентированного программирования (ООП) в языке Python:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class Teacher(Person):
def __init__(self, name, age, subject):
super().__init__(name, age)
self.subject = subject
def teach(self):
print(f"{self.name} is teaching {self.subject}.")
class Student(Person):
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
def study(self):
print(f"{self.name} is studying.")
class Subject:
def __init__(self, name):
self.name = name
class Academy:
def __init__(self, name):
self.name = name
self.teachers = []
self.students = []
def add_teacher(self, teacher):
self.teachers.append(teacher)
def add_student(self, student):
self.students.append(student)
def list_teachers(self):
print("Teachers:")
for teacher in self.teachers:
print(f"- {teacher.name}")
def list_students(self):
print("Students:")
for student in self.students:
print(f"- {student.name}")
# Пример использования классов
math_teacher = Teacher("John Doe", 35, "Mathematics")
physics_teacher = Teacher("Jane Smith", 40, "Physics")
academy = Academy("Example Academy")
academy.add_teacher(math_teacher)
academy.add_teacher(physics_teacher)
student1 = Student("Alice Johnson", 18, 11)
student2 = Student("Bob Williams", 17, 10)
academy.add_student(student1)
academy.add_student(student2)
academy.list_teachers()
academy.list_students()
math_teacher.teach()
student1.study()
```
В этом примере `Person` является базовым классом, от которого наследуются `Teacher` (учитель) и `Student` (студент). Класс `Subject` представляет учебный предмет, а класс `Academy` представляет академию и содержит списки учителей и студентов. Вы можете добавить дополнительные методы и свойства к классам в соответствии с требованиями вашей академии.