ЛР-6 / ЯП №6
.pdfcurrent_time = time(21, 30) central_zone.update_all(current_time) north_zone.update_all(current_time)
# создание контроллера (зависимость)
controller = LightingController("Главный контроллер") # объект controller: контроллер системы controller.add_zone(central_zone)
controller.add_zone(north_zone)
controller.monitor_zone(central_zone) |
# зависимость: мониторинг central_zone |
controller.system_report() |
# зависимость: отчёт по всей системе |
#дополнительные методы производных классов fixture1.set_brightness(75)
sensor1.calibrate(20.0)
#демонстрация: высокая освещённость (светло) sensor1.set_light_level(150.0) sensor2.set_light_level(200.0) sensor3.set_light_level(120.0)
current_time = time(9, 0) central_zone.update_all(current_time) north_zone.update_all(current_time)
controller.system_report()
# демонстрация композиции: расписание — часть фонаря print(f"\nКОМПОЗИЦИЯ: фонарь {street_light1._light_id} имеет расписание
{street_light1._schedule._on_time}-{street_light1._schedule._off_time}")
# демонстрация агрегации: удаление фонаря из зоны (фонарь продолжает существовать) central_zone.remove_light(street_light2) # удаление street_light2 из central_zone
print(f"фонарь '{street_light2._light_id}' всё ещё существует: {street_light2._location}") # объект жив
11
