Einführung
In einer Galaxie, die von der Hegemonie Planet Empire dominiert wird, gedeihen die Gebiete des Reiches unter der wachen Aufsicht der Wächter des Kaiserlichen Territoriums. Diese Wächter sind für die Aufrechterhaltung der Ordnung verantwortlich und sorgen dafür, dass die von dem Reich verordneten Protokolle eingehalten werden. Kürzlich wurden den Wächtern die Aufgabe übertragen, ein Netzwerk von Stachelschweifdrones zur Beobachtung der imperialen Grenzen zu deployieren und zu verwalten.
Als ein Team von Codern, das von der Kaiserlichen Tech Division ernannt wurde, ist Ihr Ziel, die Software zu entwerfen, die die Drohnenflotte steuert. Der Schwerpunkt dieses Labs besteht darin, die Klassenmethoden und statischen Methoden von Python zu nutzen, um ein effizientes und modular aufgebautes Steuerungssystem zu schaffen. Ihre Software wird gewährleisten, dass die Wächter die Drohnenverhaltensweisen leicht manipulieren können und die über verschiedene Sektoren gesammelten Daten analysieren können, ohne den Code zu duplizieren.
Bereit sind Sie, Ihre Pflicht gegenüber dem Reich zu erfüllen und Ihre Loyalität durch Zeilen von Code zu demonstrieren? Dann los geht's.
Einrichten der Drone-Klasse
In diesem Schritt werden Sie die grundlegende Drone-Klasse erstellen, von der alle Drohnen erben werden. Diese Klasse wird sowohl Klassenmethoden als auch statische Methoden haben, die die Initialisierung und die globalen Verwaltungselemente der Drohnenflotte behandeln werden.
Beginnen Sie zunächst, indem Sie in einem neuen Python-File namens drone.py im Verzeichnis ~/project öffnen. Fügen Sie den folgenden Code hinein:
class Drone:
fleet_count = 0
def __init__(self, designation):
self.designation = designation
Drone.fleet_count += 1
@classmethod
def from_serial_number(cls, serial_number):
designation = f"Drone-{serial_number}"
return cls(designation)
@staticmethod
def is_valid_designation(designation):
return designation.startswith("Drone-")
if __name__ == "__main__":
## Beispielverwendung
standard_drone = Drone.from_serial_number("SN123")
print(f"Designation: {standard_drone.designation}")
print(f"Is valid designation: {Drone.is_valid_designation(standard_drone.designation)}")
print(f"Fleet count: {Drone.fleet_count}")
Dieser Code erstellt eine Drone-Klasse mit einem Initialisierer, einer Klassenmethode from_serial_number, die eine neue Droneninstanz mit einer passenden Bezeichnung mithilfe einer Seriennummer erstellt, und einer statischen Methode is_valid_designation, die überprüft, ob eine gegebene Bezeichnung gültig für eine Drohne ist.
Verwenden Sie den folgenden Befehl, um Ihre drone.py-Datei auszuführen und die Beispielverwendung in Aktion zu sehen:
python ~/project/drone.py
Sie sollten eine Ausgabe sehen, die der Beispielverwendungscode im __main__-Block von drone.py entspricht:
Designation: Drone-SN123
Is valid designation: True
Fleet count: 1
Implementieren von auf Missionen spezifischem Verhalten
Jetzt fügen Sie eine auf Missionen bezogene statische Methode hinzu, um die Drohnen nach ihren zugewiesenen Zonen zu organisieren. Erstellen Sie eine neue Methode innerhalb der Drone-Klasse namens assign_zone, die einer Drohne eine der Sicherheitszonen des Reiches gemäß der letzten Ziffer ihrer Seriennummer zuweist.
Ändern Sie die vorhandene drone.py-Datei, um die neue assign_zone-Methode hinzuzufügen:
class Drone:
fleet_count = 0
def __init__(self, designation):
self.designation = designation
Drone.fleet_count += 1
@classmethod
def from_serial_number(cls, serial_number):
designation = f"Drone-{serial_number}"
return cls(designation)
@staticmethod
def is_valid_designation(designation):
return designation.startswith("Drone-")
@staticmethod
def assign_zone(serial_number):
zone_mapping = {
"1": "Residential",
"2": "Commercial",
"3": "Industrial",
"4": "Agricultural"
}
return zone_mapping.get(serial_number[-1], "Undefined")
if __name__ == "__main__":
standard_drone = Drone.from_serial_number("SN123")
print(f"Assigned Zone: {Drone.assign_zone(standard_drone.designation)}")
Führen Sie die aktualisierte drone.py wie zuvor aus, um das neue Verhalten zu sehen:
python ~/project/drone.py
Die folgende Information sollte auf Ihrem Terminal angezeigt werden:
Assigned Zone: Industrial
Zusammenfassung
In diesem Lab haben Sie untersucht, wie Klassenmethoden und statische Methoden in einer Python-Klasse eingesetzt werden können, um ein modular und effizientes Steuerungssystem zu erstellen. Indem Sie eine Drone-Klasse entworfen und die Verwendung von Klassenfunktionen praktiziert haben, haben Sie gelernt, wie Sie sowohl die Instanziierunglogik als auch Hilfsfunktionen, die unabhängig von Klasseninstanzen sind, kapseln können.
Durch diese praktische Erfahrung haben Ihre Fähigkeiten im objektorientierten Programmieren geschärft, und Sie sind jetzt besser gerüstet, um sauberen, wiederverwendbaren Code zu schreiben. Hoffentlich fühlen Sie sich bereit, die Gebiete der Hegemonie Planet Empire mit Ihrer Python-Kenntnis zu verteidigen. Denken Sie daran, die Macht des Reiches ist nur so stark wie der von seinen loyalen Entwicklern erstellte Code!



