Skip to content

oop_homework_1.py #18

@anton216216

Description

@anton216216

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]}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions