Введение
Добро пожаловать в 2100 год, когда человечество достигло звезд и создало процветающие космические города среди космоса. В этой футуристической сценарии вы являетесь пионерским Архитектором Космического Города, которому поручено создаватьinnovative решения для адаптации к постоянно меняющимся потребностям этих космических мегаполисов.
В качестве архитектора, ответственного за проектирование надежных строительных блоков космического города, вам понадобится применить передовую концепцию полиморфизма. Эта программа принципия позволит вашим creations взаимодействовать и общаться无缝 с различными системами космического города с использованием общего интерфейса, несмотря на их скрытые различия.
Ваш objetivo в этом лаборатории - использовать силу Python полиморфизма для создания гибкого и поддерживаемого кода для компонентов инфраструктуры города. С помощью этого вы гарантируете рост и адаптивность города на протяжении веков вперед. Готовьтесь быть в передовой части космическогоurban development, архитектор!
Понимание полиморфизма в Python
В этом шаге вы изучите основы полиморфизма в Python. Полиморфизм позволяет нам определять методы в дочернем классе с тем же именем, что и в их родительском классе. Таким образом, дочерний класс наследует свои свойства и поведение. Однако, если вам нужно внести некоторые изменения или добавления, полиморфизм позволяет делать это без изменения структуры родительского класса.
Начните с создания базового класса, представляющего интерфейс для взаимодействия с различными модулями системы города.
Далее добавьте следующее содержимое в ваш ~/project/infrastructure.py:
## infrastructure.py
class CitySystem:
def power_on(self):
raise NotImplementedError("Подкласс должен реализовать этот абстрактный метод")
class TransportationSystem(CitySystem):
def power_on(self):
print("Транспортная система сейчас активирована.")
class WasteManagementSystem(CitySystem):
def power_on(self):
print("Система управления отходами сейчас активирована.")
## Эта функция представляет последовательность инициализации города
def initiate_city_systems(systems):
for system in systems:
system.power_on()
## Посмотрим, как работает полиморфизм
if __name__ == "__main__":
city_systems = [TransportationSystem(), WasteManagementSystem()]
initiate_city_systems(city_systems)
Для проверки того, что системы правильно инициализируются с использованием полиморфизма, выполните следующую команду:
python3 ~/project/infrastructure.py
Вы должны увидеть вывод, указывающий на то, что как транспортная, так и система управления отходами активированы:
Транспортная система сейчас активирована.
Система управления отходами сейчас активирована.
Добавление новых систем
Теперь, когда вы понимаете, как работает полиморфизм, настало время расширить функциональность нашего космического города. Ваша задача - добавить новую систему для ResourceAllocation (Системы распределения ресурсов), не нарушая существующий кодовый баз.
В том же файле infrastructure.py добавьте новый класс под названием ResourceAllocationSystem с собственным методом power_on, который выводит уникальное сообщение при активации.
class ResourceAllocationSystem(CitySystem):
def power_on(self):
print("Система распределения ресурсов сейчас активирована.")
Не забудьте обновить массив city_systems и включить экземпляр вновь созданной ResourceAllocationSystem, а затем протестировать последовательность инициализации. Последним шагом является выполнение скрипта:
python3 ~/project/infrastructure.py
На вашем терминале должны быть отображены следующие сведения:
Транспортная система сейчас активирована.
Система управления отходами сейчас активирована.
Система распределения ресурсов сейчас активирована.
Резюме
В этой лаборатории мы окунулись в мир полиморфизма в Python, открывая его важную роль в создании гибких и поддерживаемых кодовых структур для сложных приложений, таких как инфраструктура космического города будущего. Мы начали с основных концепций, практикуя разработку универсальной последовательности включения питания для различных систем, и продвигались дальше, расширяя возможности нашего города путём无缝ного интеграции новых систем - благодаря полиморфизму.
Воспользовавшись объектно-ориентированными возможностями Python, мы повысили свои навыки как разработчиков, так и Архитекторов Космического Города, заложив основы для модульного, адаптивного программного обеспечения, способного经得起考验 межзвездного времени.



