Raumstadtarchitekt - Polymorphe Gestaltung

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Willkommen im Jahr 2100, in dem die Menschheit die Sterne erreicht hat und blühende Weltraumstädte im Kosmos errichtet hat. In dieser futuristischen Szenerie bist du ein Pionier-Stadtarchitekt im Weltraum, der mit der Aufgabe betraut ist, innovative Lösungen zu entwickeln, um sich an die sich ständig ändernden Bedürfnisse dieser himmlischen Metropolen anzupassen.

Als Architekt, der für das Entwerfen robuster Bausteine einer Weltraumstadt verantwortlich ist, musst du das fortgeschrittene Konzept der Polymorphie anwenden. Dieses Programmierprinzip wird es deinen Schöpfungen ermöglichen, sich nahtlos mit verschiedenen Weltraumstadtssystemen über eine gemeinsame Schnittstelle zu interagieren und zu kommunizieren, ungeachtet ihrer zugrunde liegenden Unterschiede.

Dein Ziel in diesem Lab ist es, die Macht der Python-Polymorphie zu nutzen, um flexiblen und wartbaren Code für die Infrastrukturkomponenten der Stadt zu schreiben. Dadurch wirst du sicherstellen, dass die Stadt in den kommenden Jahrhunderten wachsen und sich anpassen kann. Bereite dich auf die Spitze der Weltraumstadtentwicklung vor, Architekt!


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{{"Raumstadtarchitekt - Polymorphe Gestaltung"}} end

Das Verständnis von Polymorphie in Python

In diesem Schritt erkundest du die Grundlagen der Python-Polymorphie. Die Polymorphie ermöglicht es uns, Methoden in der Kindklasse mit dem gleichen Namen wie in ihrer Elternklasse zu definieren. Dadurch erbt die Kindklasse ihre Eigenschaften und Verhaltensweisen. Wenn du jedoch bestimmte Anpassungen oder Hinzufügungen vornehmen musst, erlaubt die Polymorphie Änderungen ohne die Struktur der Elternklasse zu verändern.

Beginne damit, eine Basisklasse zu erstellen, die die Schnittstelle für die Interaktion mit verschiedenen Stadt-Systemmodulen darstellt.

Als nächstes füge den folgenden Inhalt zu deiner ~/project/infrastructure.py hinzu:

## infrastructure.py
class CitySystem:
    def power_on(self):
        raise NotImplementedError("Subclass must implement this abstract method")

class TransportationSystem(CitySystem):
    def power_on(self):
        print("Transportation System is now activated.")

class WasteManagementSystem(CitySystem):
    def power_on(self):
        print("Waste Management System is now activated.")

## This function represents the city initialization sequence
def initiate_city_systems(systems):
    for system in systems:
        system.power_on()

## Let’s see polymorphism in action
if __name__ == "__main__":
    city_systems = [TransportationSystem(), WasteManagementSystem()]
    initiate_city_systems(city_systems)

Um zu testen, dass die Systeme mit Polymorphie korrekt initialisiert werden, führe den folgenden Befehl aus:

python3 ~/project/infrastructure.py

Du solltest Ausgabe sehen, die angibt, dass sowohl das Verkehrssystem als auch das Entsorgungssystem aktiviert wurden:

Transportation System is now activated.
Waste Management System is now activated.

Hinzufügen neuer Systeme

Jetzt, da du verstehst, wie die Polymorphie funktioniert, ist es an der Zeit, die Funktionalität unserer Weltraumstadt zu erweitern. Deine Aufgabe besteht darin, ein neues System für die Ressourcenallokation hinzuzufügen, ohne die vorhandene Codebasis zu stören.

In der gleichen Datei infrastructure.py füge eine neue Klasse namens ResourceAllocationSystem hinzu, die eine eigene power_on-Methode hat, die eine eindeutige Nachricht ausgibt, wenn sie aktiviert wird.

class ResourceAllocationSystem(CitySystem):
    def power_on(self):
        print("Resource Allocation System is now activated.")

Vergiss nicht, das city_systems-Array zu aktualisieren und eine Instanz des neu erstellten ResourceAllocationSystem hinzuzufügen, und teste dann die Initialisierungsequenz. Der letzte Schritt besteht darin, das Skript auszuführen:

python3 ~/project/infrastructure.py

Die folgenden Informationen sollten auf deiner Konsole angezeigt werden:

Transportation System is now activated.
Waste Management System is now activated.
Resource Allocation System is now activated.

Zusammenfassung

In diesem Lab haben wir uns in das Gebiet der Python-Polymorphie gewagt und entdeckt, wie wichtig sie ist, um vielseitige und wartbare Code-Strukturen für komplexe Anwendungen wie die Infrastruktur einer futuristischen Weltraumstadt zu schaffen. Wir haben mit den Grundlagen begonnen, indem wir uns an der Gestaltung einer universellen Einschaltsequenz für verschiedene Systeme übten, und sind dann dazu vorgeschritten, die Fähigkeiten unserer Stadt durch nahtlose Integration neuer Systeme zu erweitern – dank der Polymorphie.

Indem wir die objektorientierten Funktionen von Python genutzt haben, haben wir unsere Fähigkeiten als Entwickler und Weltraumstadtarchitekten verbessert und die Grundlage für modularisierte, anpassbare Software gelegt, die den Test des interstellaren Zeitablaufs bestehen kann.