-
Notifications
You must be signed in to change notification settings - Fork 154
Description
class Student:
def init(self, name, surname, gender):
self.name = name
self.surname = surname
self.gender = gender
self.finished_courses = []
self.courses_in_progress = []
self.grades = {}
class Mentor:
def init(self, name, surname):
self.name = name
self.surname = surname
self.courses_attached = []
def rate_hw(self, student, course, grade):
if isinstance(student, Student) and course in self.courses_attached and course in student.courses_in_progress:
if course in student.grades:
student.grades[course] += [grade]
else:
student.grades[course] = [grade]
else:
return 'Ошибка'
class Lecturer(Mentor):
"""Лектор - наследуется от Mentor"""
pass
class Reviewer(Mentor):
"""Эксперт, проверяющий домашние задания - наследуется от Mentor"""
pass
Проверка работы классов
lecturer = Lecturer('Иван', 'Иванов')
reviewer = Reviewer('Пётр', 'Петров')
print(isinstance(lecturer, Mentor)) # True
print(isinstance(reviewer, Mentor)) # True
print(lecturer.courses_attached) # []
print(reviewer.courses_attached) # []
Проверка, что функциональность родительского класса работает
best_student = Student('Ruoy', 'Eman', 'your_gender')
best_student.courses_in_progress += ['Python']
Reviewer может проверять домашние задания (наследует метод rate_hw)
reviewer.courses_attached += ['Python']
reviewer.rate_hw(best_student, 'Python', 10)
reviewer.rate_hw(best_student, 'Python', 9)
print(best_student.grades) # {'Python': [10, 9]}