Объектно-ориентированное программирование, ошибка в коде.

herman1921

Новичок
Пользователь
Июл 15, 2021
13
0
1
Всем привет.
Суть задания прикрепил в скриншоте.
У меня в коде есть ошибка, не получается вывести "оценки", при чём необходимо чтоб было 2 или 3 оценки.
Прошу подсказать, так как запутался немного уже.
  1. Windows
  2. Python 3.9
Python:
from py_Person import Person # наследуем класс Person
import random

class Student(Person): # создаём новый класс Student

    def __init__(self, name, secondname, group_number, appraisals): # добавляем 2 новых параметра группа и оценки
        super().__init__(name, secondname) # наследуем первые 2 параметра у класса Person
        self.group_number = group_number
        self.appraisals = []

    def add_score(self, test_score):
        test_score = random.randint(0,10)
        self.appraisals.append(test_score)

    def __str__(self): # переопределяем метод __str__
        return 'Студент: {} {}, группа {}, оценки {}'.format(self.name, self.secondname, self.group_number, self.appraisals)


student1 = Student('Иван', 'Иванов', 'ГР-01', '[ ]')
student2 = Student('Саша', 'Петров', 'ГР-37', '[ ]')

print(student1)
print(student2)

То что выводит терминал:

Студент: Иван Иванов, группа ГР-01, оценки [ ]
Студент: Саша Петров, группа ГР-37, оценки [ ]

На всякий случай прикреплю класс Person:

Python:
class Person: # создаём класс Person
    def __init__(self, name, secondname): # используем конструктор __init__
        self.name = name
        self.secondname = secondname
    def __str__(self): # используем метод __str__
        return '{} {}'.format (self.name, self.secondname)

person1 = Person('Иван', 'Иванов') # задаём параметры:
person2 = Person('Саша', 'Петров')

print(person1)
print(person2)
 

Вложения

  • student.png
    student.png
    46,5 КБ · Просмотры: 2

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 670
477
83
в задании есть метод set_test_score, который добавляет оценки, у вас его нет, поэтому и оценок нет...

upd
не увидел,вы его сделали под другим именем, ну так добавьте оценки вначале, потом он их выведет...
 

herman1921

Новичок
Пользователь
Июл 15, 2021
13
0
1
в задании есть метод set_test_score, который добавляет оценки, у вас его нет, поэтому и оценок нет...

upd
не увидел,вы его сделали под другим именем, ну так добавьте оценки вначале, потом он их выведет...
Можете плз уточнить вначале, куда конкретнее?
 

herman1921

Новичок
Пользователь
Июл 15, 2021
13
0
1
Разобрался, перед принтом добавил:

student1.add_score(1)
student1.add_score(1)
student2.add_score(1)
student2.add_score(1)
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 670
477
83
Разобрался, перед принтом добавил:

student1.add_score(1)
student1.add_score(1)
student2.add_score(1)
student2.add_score(1)
вам можно сделать без аргументов этот метод, так как вы все равно рандомом делаете оценку...
а так хорошо что разобрались...
 

Форум IT Специалистов