Как я могу взять значение грантов из метода grant_calculation и поместить его в мой объект класса student1 - PullRequest
0 голосов
/ 21 января 2020

Как я могу получить ценность грантов для моего объекта student1. Извините, я новичок в python и не знаю, как эти вещи работают. Я не понимаю, почему предоставляет значение, которое должно быть не 70,0, когда средняя_марка больше 9, но все еще 70,0.

    class Students:
    def __init__(self, name, surname, age, course_number, average_mark, standart_grants, grants):
        self.name = name
        self.surname = surname
        self.age = age
        self.course_number = course_number
        self.average_mark = average_mark
        self.standart_grants = standart_grants
        self.grants = grants

    def grant_calculation(self):
        if self.average_mark >= 9:
            grants = self.standart_grants * 0.75
        elif 6 >= self.average_mark <= 8:
            grants = self.standart_grants * 0.5
        else:
            grants = self.standart_grants
        return grants

    def show(self):
        print(self.name)
        print(self.surname)
        print(self.age)
        print(self.course_number)
        print(self.average_mark)
        print(self.standart_grants)
        print(self.grants)
student1 = Students("Arni", "Gandalf", 19, 3, 9, 70.0, 70.0)
student1.grant_calculation()
Students.show(student1)

1 Ответ

1 голос
/ 21 января 2020

grants - локальная переменная, не имеющая смысла вне метода Students.grant_calculation(self), если она не хранится где-либо. Переменная, которую вы ищете: self.grants, то есть:

    def grant_calculation(self):
        if self.average_mark >= 9:
            self.grants = self.standart_grants * 0.75
        elif 6 >= self.average_mark <= 8:
            self.grants = self.standart_grants * 0.5
        else:
            self.grants = self.standart_grants

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

В качестве альтернативы, вы можете оставить эту функцию как есть и обновить ее снаружи, присваивая ее результат student1.grants:

student1.grants = student1.grant_calculation()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...