-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLesson_3_dz_2.py
More file actions
48 lines (33 loc) · 1.97 KB
/
Copy pathLesson_3_dz_2.py
File metadata and controls
48 lines (33 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"""
Задание 2.
Реализовать класс Road (дорога), в котором определить защищенные атрибуты:
length (длина в метрах), width (ширина в метрах).
Значения данных атрибутов должны передаваться при создании экземпляра класса.
Реализовать публичный метод расчета массы асфальта, необходимого для покрытия
всего дорожного полотна.
Использовать формулу: длина * ширина * масса асфальта для покрытия одного кв
метра дороги асфальтом, толщиной в 1 см * число м толщины полотна.
Массу и толщину сделать публичными атрибутами.
Проверить работу метода.
Например: 20м*5000м*25кг*0.05м = 125000 кг = 125 т
"""
class Road:
def __init__(self, length: float, width: float):
# Защищённые атрибуты длины и ширины
self._length = length
self._width = width
# Публичные атрибуты, задаются после создания экземпляра
self.mass = None
self.thickness = None
def calculate_asphalt(self) -> float:
if self.mass is None or self.thickness is None:
raise ValueError("Не заданы параметры mass и thickness")
return self._length * self._width * self.mass * self.thickness
# Длина 20 м, ширина 5000 м
road = Road(20, 5000)
# Задаём массу асфальта: 25 кг на м² при толщине 1 м
road.mass = 25
# Задаём толщину полотна: 0.05 м
road.thickness = 0.05
total_kg = road.calculate_asphalt()
print(f"Масса асфальта: {total_kg} кг ({total_kg/1000} т)")