переменных. Так же сделать атрибутами класса.” к coeff_calorie_1 = 18, coeff_calorie_2 = 20
Сейчас код выглядит так:
class Running(Training):
"""Тренировка: бег."""
def get_spent_calories(self) -> float:
active_calories_coeff = 18
general_calories_coeff = 20
return ((active_calories_coeff * self.get_mean_speed()
- general_calories_coeff) * self.weight
/ self.M_IN_KM * self.duration * 60)
Как я понимаю, технически это должно выглядеть так:
class Running(Training):
"""Тренировка: бег."""
def __init__(self,
action: int,
duration: float,
weight: float,
):
super().__init__(action, duration, weight)
self.general_calories_coeff = None
self.active_calories_coeff = None
def get_spent_calories(self) -> float:
self.active_calories_coeff = 18
self.general_calories_coeff = 20
return ((self.active_calories_coeff * self.get_mean_speed()
- self.general_calories_coeff) * self.weight
/ self.M_IN_KM * self.duration * 60)
(Сейчас описаны как переменные экземпляра)
Однако, не совсем понимаю для чего - разве код не становится тогда перегруженным визуально?
а атрибуты класса где
self.general_calories_coeff = None self.active_calories_coeff = None self.active_calories_coeff = 18 self.general_calories_coeff = 20
Вынеси константы из функции.
Обсуждают сегодня