При вызове функции возникает ошибка "name is not defined" подскажите в чем причина, вот код

Рейтинг: -1Ответов: 1Опубликовано: 11.02.2023
class Koesuoritus:
    def __init__(self, nimi: str, arvosana1: int, arvosana2: int, arvosana3: int):
        self.nimi = nimi
        self.arvosana1 = arvosana1
        self.arvosana2 = arvosana2
        self.arvosana3 = arvosana3

    def tulokset (suoritukset: list):
        return [max(suoritus) for suoritus in suoritukset] 
           

    def __str__(self):
        return (f'Nimi:{self.nimi}, arvosana1: {self.arvosana1}' +
            f', arvosana2: {self.arvosana2}, arvosana3: {self.arvosana3}')
           

if __name__ == "__main__": 
    suoritus1 = Koesuoritus("Pekka",5,3,4)
    suoritus2 = Koesuoritus("Pirjo",3,4,1)
    suoritus3 = Koesuoritus("Paavo",2,1,3)
    suoritukset = [suoritus1, suoritus2, suoritus3]
    print(tulokset(suoritukset))

Ответы

▲ 1Принят

Функция tulokset находится в классе Koesuoritus, поэтому мы должны вызывает метод класса Koesuoritus.tulokset, а не просто функцию. Питон не знает функцию с таким именем (вне класса), о чём и сообщает в ошибке:

print(Koesuoritus.tulokset(suoritukset))

Вижу, вы недавно начали изучать программирование. Думаю этот самоучитель вам поможет, особенно c ООП.