In einer objektorientierten Sprache ist eine Klasse ein erweiterbarer Code, der eine Vorlage zum Erstellen und Verwenden der Objekte dieser Klasse darstellt. Ein Objekt einer Klasse bezieht sich einfach auf eine Instanz der definierten Klasse.
Grundlagen der Python-Klasse
In der Programmiersprache Python wird jedes Datenelement als Instanz einer Klasse dargestellt. Wenn Sie mit der Sprache nicht vertraut sind, lesen Sie unsere Anfängerleitfaden für Python bevor Sie weitermachen.
Eine Klasse bietet eine Reihe von Verhaltensweisen in Form von Elementfunktionen (auch als Methoden bezeichnet), die Implementierungen aufweisen, die allen gemeinsam sind alle Instanzen dieser Klasse, und es bestimmt auch die Art und Weise, wie die Statusinformationen für ihre Instanz in Form von dargestellt werden Attribute.
Weiterlesen: Klassenmethoden in Python: Die wichtigen Unterschiede
Der folgende Code stellt ein Beispiel für eine in Python definierte Klasse dar. Die im Code definierte Klasse bietet eine Implementierung einer RaceCar-Klasse.
Jede Instanz der Klasse bietet ein einfaches Modell für verschiedene Automarken und enthält den folgenden Status Informationen: Name des Fahrzeugs, Name des Fahrers, Kennzeichen des Fahrzeugs, aktuelle Geschwindigkeit, Geschwindigkeitsgebühr und Farbe.
Diese Fahrzeugklasse modelliert einen speziellen Sensor in jedem Fahrzeug, der eine Geldstrafe von 50 US-Dollar gegen den Fahrer des Fahrzeugs verhängt, wenn dieser das gesetzliche Tempolimit von 140 Meilen pro Stunde überschreitet.
Beispiel einer Klasse (Autoklasse)
Klasse Auto:
#Konstrukteur
# Die Methode init ist für die Initialisierung der Werte der Instanzvariablen in der Klasse verantwortlich.
def __init __ (self, car_name, driver_name, license_plate_number,
current_speed, speeding_charge, color):
self.car_name = car_name
self._driver_name = driver_name
self._license_plate_number = license_plate_number
self._current_speed = current_speed
self._speeding_charge = speeding_charge
self._colour = color
# Zugriffsmethoden
#Die Methode get_car_name gibt den Namen des Autos zurück
def get_car_name (self):
return self._car_name
#Die Methode get_driver_name gibt den Namen des Treibers zurück
def get_driver_name (self):
Geben Sie self._driver_name zurück
#Die Methode get_license_plate gibt das Nummernschild des Autos zurück
def get_license_plate (self):
return self._license_plate
#Die Methode get_current_speed gibt die aktuelle Geschwindigkeit zurück, mit der sich das Auto bewegt
def get_current_speed (self):
return self._current_speed
#Die Methode get_speeding_charge gibt den Gesamtbetrag zurück, den die
#driver muss für Übergeschwindigkeit bezahlen
def get_speeding_charge (self):
return self._speeding_charge
#Die Methode get_colour gibt die Farbe unserer süßen Fahrt zurück!
def get_colour (self):
return self._colour
#Mutator Methoden
#Der Wert set_driver ändert den Fahrer unseres Autos.
def set_driver (self, new_driver):
self._driver_name = new_driver
#Die Methode speeding_ticket stellt sicher, dass dem Fahrer 50 Dollar berechnet werden, # wenn er oder sie beim Beschleunigen über 140 Meilen pro Stunde erwischt wurde :(
def speeding_ticket (self, current_speed):
wenn current_speed <= 140:
falsch zurückgeben
sonst:
self._speeding_charge + = 50
return True
#Die Methode make_payment stellt sicher, dass der Fahrer den gesamten Betrag bezahlen kann, den er oder sie für die Beschleunigung der Ticketgebühren schuldet.
def make_payment (self, amount_paid):
self._speeding_charge - = Betrag_bezahlt
Eine Erklärung des Python-Klassenbeispiels
Der "Selbst" -Parameter
Beachten Sie zunächst, dass es einen Unterschied zwischen der in der Klasse deklarierten Methodensignatur und der Methodensignatur gibt, die vom Programmierer zum Aufrufen der Funktion verwendet wird. Zum Beispiel die get_colour Die in der Klasse definierte Methode verwendet einen Parameter, nämlich den Parameter "self".
Wenn der Programmierer diese Methode jedoch für eine Instanz der Klasse aufruft, gibt er keine Parameter an. Das gleiche Phänomen kann bei der Methode speeding_ticket beobachtet werden, bei der zwei Parameter in der Klasse (d. H. Self) verwendet werden und current_speed), aber der Programmierer kann diese Methode ausführen, indem er den Wert nur für die 'current_speed' angibt. Parameter.
Dies liegt daran, dass der bereitgestellte Parameter "self" die Methode an die Objektinstanz bindet, für die sie aufgerufen wurde, und kein vom Programmierer anzugebender Wert ist.
Der Konstruktor
Ein Konstruktor einer Klasse bezieht sich auf die Methode der Klasse, die ein Benutzer aufrufen kann, um eine Objektinstanz dieser Klasse zu erstellen. In der Car-Klasse kann der Benutzer eine Objektinstanz mithilfe der folgenden Syntax erstellen:
#creating unsere eigenen Bugatti :)
Auto ("Bugatti", "David Sasu", 90828, 0, 0, "Cherry Red")
Die Ausführung dieses Codes führt zu einem Aufruf der Methode __init__ in der Klasse Car. Die Verantwortung dieser Methode besteht darin, ein neu erstelltes Kreditautoobjekt mit den angegebenen Instanzwerten zu generieren. Jedes Objekt der Car-Klasse besteht aus sechs Instanzvariablen:
- _car_name
- _Fahrername
- _Nummernschild
- _momentane Geschwindigkeit
- _speeding_charge
- _Farbe
Accessor-Methoden
Dies sind Methoden, die geschrieben werden, um auf die Statusinformationen einer Objektinstanz zuzugreifen. In der Car-Klasse wurden folgende Zugriffsmethoden geschrieben:
- get_car_name
- get_driver_name
- get_license_plate
- get_current_speed
- get_speeding_charge
- get_colour
Mutator-Methoden:
Dies sind Methoden, die geschrieben werden, um die Statusinformationen einer Objektinstanz zu ändern. In der Car-Klasse wurden folgende Mutator-Methoden geschrieben:
- set_driver
- Strafzettel
- make_payment
Das Konzept der Verkapselung
"Kapselung" ist ein Begriff, der verwendet wird, um ein Prinzip des objektorientierten Entwurfs zu beschreiben, bei dem Komponenten eines Programms die internen Details ihrer jeweiligen Implementierungen nicht offenlegen sollten. Um Ihr Verständnis des Konzepts der Kapselung zu verbessern, lesen Sie unsere Artikel über die Einkapselung.
Fehlerüberprüfung
Unsere Implementierung der Car-Klasse ist nicht robust, da sie abhängig von der Eingabe, die sie vom Programmierer erhält, wahrscheinlich abstürzt oder fehlerhaft funktioniert.
Beachten Sie zunächst, dass wir weder die Typen der Parameter der Methoden speeding_ticket und make_payment noch die Typen der Parameter des Konstruktors überprüfen. Dies kann zum Absturz des Programms führen, wenn der Benutzer ein Argument angibt, das nicht erwartet wurde. Wenn der Benutzer beispielsweise einen Aufruf wie speeding_ticket ("Chips ahoi") ausführt, stürzt das Programm ab, da der von der Methode erwartete Typ eine Ganzzahl und keine Zeichenfolge ist.
Jetzt verstehen Sie die Grundlagen der Python-Klasse
In diesem Artikel wurde Ihnen das Konzept einer Python-Klasse und eines Python-Klassenobjekts vorgestellt. Sie wurden auch mit den Ideen vertraut gemacht, auf denen eine Python-Klasse aufgebaut ist, z. B.: Kapselung, Selbstkennung, Zugriffsmethoden und Mutatormethoden.
Mit diesen Informationen sollten Sie in der Lage sein, eine einfache Python-Klasse selbst zu erstellen und zu testen :)
Jetzt müssen Sie Ihre Identität über Ihr Mobilgerät überprüfen, um Ihr Konto auf dem Desktop und der Web-App zu verknüpfen.
- Programmierung
- Python
Abonniere unseren Newsletter
Melden Sie sich für unseren Newsletter an, um technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote zu erhalten!
Noch ein Schritt…!
Bitte bestätigen Sie Ihre E-Mail-Adresse in der E-Mail, die wir Ihnen gerade gesendet haben.