Полиморфный дизайн проекта Space City Architect

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Добро пожаловать в 2100 год, когда человечество достигло звезд и создало процветающие космические города среди космоса. В этой футуристической сценарии вы являетесь пионерским Архитектором Космического Города, которому поручено создаватьinnovative решения для адаптации к постоянно меняющимся потребностям этих космических мегаполисов.

В качестве архитектора, ответственного за проектирование надежных строительных блоков космического города, вам понадобится применить передовую концепцию полиморфизма. Эта программа принципия позволит вашим creations взаимодействовать и общаться无缝 с различными системами космического города с использованием общего интерфейса, несмотря на их скрытые различия.

Ваш objetivo в этом лаборатории - использовать силу Python полиморфизма для создания гибкого и поддерживаемого кода для компонентов инфраструктуры города. С помощью этого вы гарантируете рост и адаптивность города на протяжении веков вперед. Готовьтесь быть в передовой части космическогоurban development, архитектор!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python/ObjectOrientedProgrammingGroup -.-> python/polymorphism("Polymorphism") subgraph Lab Skills python/polymorphism -.-> lab-271580{{"Полиморфный дизайн проекта Space City Architect"}} end

Понимание полиморфизма в 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, мы повысили свои навыки как разработчиков, так и Архитекторов Космического Города, заложив основы для модульного, адаптивного программного обеспечения, способного经得起考验 межзвездного времени.