Привет. Переписал всё проще и короче, как если бы скидывал решение одногруппнику.
1. SRP (Принцип единственной ответственности)
Вот код, где мы всё разделили — математика отдельно, вывод отдельно, сохранение отдельно.
Python
class Trip: def __init__(self, distance, fuel): self.distance = distance self.fuel = fuel def calculate_consumption(self): return (self.fuel / self.distance) * 100 if self.distance else 0 class TripPrinter: def print_trip(self, trip): print(f"Проехали {trip.distance} км. Расход: {trip.calculate_consumption()}") class TripSaver: def save_trip(self, trip): with open("log.txt", "a") as f: f.write(f"{trip.distance} км, {trip.fuel} л\n")
Ответы:
Почему вывод и сохранение не в классе Trip? Чтобы при смене формата вывода на экран или при записи в базу данных не пришлось менять саму логику расхода поездки.
Какой принцип?