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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions