Programmierung & Skripten

Python -Konstruktoren

Python -Konstruktoren

Einführung

Inzwischen sollten Sie mit der Art und Weise vertraut sein, wie grundlegende Klassen in Python funktionieren. Wenn Unterricht genau das wären, was Sie gesehen haben, wären sie ziemlich starr und nicht so nützlich.

Zum Glück sind der Unterricht viel mehr als nur das. Sie sind so konzipiert, dass sie viel anpassungsfähiger sind und Informationen aufnehmen können, um die Art und Weise zu gestalten, wie sie anfangs aussehen. Nicht jedes Auto beginnt genau gleich, und auch nicht sollte Klassen. Wie schrecklich wäre es, wenn jedes Auto ein orange 71 'Ford Pinto wäre? Das ist keine gute Situation.

Eine Klasse schreiben

Starten Sie mit der Einrichtung einer Klasse wie dem im letzten Leitfaden. Diese Klasse wird sich im Verlauf dieses Leitfadens entwickeln. Es wird von einer starre, fotokopieähnlichen Situation zu einer Vorlage übergehen, die mehrere eindeutige Objekte innerhalb des Umrisss der Klasse erzeugen kann.

Schreiben Sie die erste Zeile der Klasse, definieren Sie sie als Klasse und benennen Sie sie. Dieser Leitfaden wird bei der Autoanalogie zuvor festhalten. Vergessen Sie nicht, Ihre Klasse zu bestehen Objekt so dass es die Basis erweitert Objekt Klasse.

Klassenauto (Objekt): 

Darunter setzen Sie sich ein und erstellen Sie Ihre Variablen. Normalerweise werden Klassenvariablen in der oben in der Klasse gruppierten und die Methoden unten gehalten. Es ist nicht streng obligatorisch, aber es hilft, den Code ordentlich zu halten. Erstellen Sie nur Variablen für Make, Modell, Jahr, Kilometerstand und Farbe. Es macht keinen Sinn, eine super detaillierte Klasse zu erstellen.

make = "ford" model = "Pinto" Jahr = "1971" Kilometermeilen = "253812" color = "orange" 

An diesem Punkt können Sie Ihre Variablen testen, um sicherzustellen, dass Ihre Klasse ordnungsgemäß funktioniert. Erstellen und Objekt und versuchen Sie, das Modell Ihres Autos auszudrucken. Setzen Sie dann die Modellvariable neu und drucken Sie sie erneut aus.

mycar = car () drucken ("Mein Auto ist ein % s" % mycar.Modell) Mycar.Modell = "Mustang" Print ("Mein Auto ist ein % s" % mycar.Modell) 

Das ist ein Upgrade, aber Ihr Auto kann immer noch nichts tun. Es ist Zeit, eine Methode hinzuzufügen. Erstellen Sie eine neue Methode in Ihrer Klasse genannt Move_forward Das akzeptiert eine Variable namens „Geschwindigkeit.Lassen Sie es dann das Modell Ihres Autos ausdrucken und wie schnell es läuft. Vergessen Sie nicht, einzubeziehen selbst.

Def Move_forward (Selbst, Geschwindigkeit): Print ("Ihr %s bewegt sich bei %s" %(Selbst.Modell, Geschwindigkeit)) 

Testen Sie das mit Ihrer Klasse.

mein Auto.Move_forward ("25mph") 

Alles sollte gut laufen und Ihr Auto sollte laufen.

Erstellen eines Konstruktors

Das Ändern von Variablen nach dem Erstellen eines Objekts ist klobig und ineffizient. Sie verschwenden nicht nur Zeit, sondern erbläht auch Ihren Code. Dies gilt insbesondere dann, wenn Sie mehrere Instanzen derselben Klasse erstellen und jeden ändern.

Es gibt ein Konzept in der objektorientierten Programmierung als a Konstrukteur. Konstruktoren sind spezielle Methoden, mit denen ein Objekt Argumente aufnehmen kann, wenn es erstellt wird, und automatisch Aktionen ausführen. Sie werden normalerweise zum Zuweisen von Variablen zum Zeitpunkt eines Objekts verwendet.

Im Fall von Python erstellen Sie einen Konstruktor wie jede andere Methode mit Verwendung Dev, Aber jeder Konstruktor hat den gleichen Namen, __drin__. Sie können sich vorstellen __drin__ als kurz für die Initialisierung, da es ausgeführt wird, wenn das Objekt initialisiert wird.

Erstellen Sie einen Konstruktor für Ihr Auto, der alle Variablen als Parameter aufnimmt und sie Instanzvariablen mit zuweist selbst. Eine Instanzvariable ist nur eine Variable, die in einem bestimmten Fall eines Objekts vorhanden ist.

Def __init __ (Selbst, Make, Modell, Jahr, Kilometerstand, Farbe): Selbst selbst.mach = selbst machen.Modell = Modell Selbst.Jahr = Jahr Selbst.Kilometerstand = Kilometer Selbst.Farbe = Farbe 

Stellen Sie sicher, dass Sie die alten Variablenerklärungen löschen. Du brauchst sie nicht mehr.

Verwenden des Konstruktors

Führen Sie Ihren Code erneut aus und sehen Sie, was passiert. Wenn Sie einen Fehler haben, machen Sie es richtig. Jedes Mal, wenn Sie eine Instanz von erstellen Auto(), Sie müssen es genügend Argumente übergeben, um den von Ihnen angegebenen Parametern übereinzustimmen.

Gehen Sie zurück und ändern Sie die Instanziierung der mein Auto Um die erforderlichen Argumente zu übergeben.

Mycar = Auto ('Dodge', 'Challenger', '2017', 1500, 'schwarz')

Führen Sie Ihren Code erneut aus. Alles sollte funktionieren, und Sie sollten ein anderes Auto laufen lassen.

Wie Sie bereits gesehen haben, ist dies nicht das perfekte System. Was ist, wenn Sie immer noch eine Standardvorlage wünschen, damit Sie nicht jedes Argument übergeben müssen? Das können Sie auch absolut tun. Sie müssen nur jeden Parameter in Ihrem Konstruktor gleich dem Wert festlegen, den Sie für den Standard sein möchten.

def __init __ (self, make = 'ford', model = 'Pinto', Jahr = '1971', Kilometerleistung = '253812', color = 'orange'): self.mach = selbst machen.Modell = Modell Selbst.Jahr = Jahr Selbst.Kilometerstand = Kilometer Selbst.Farbe = Farbe 

Wenn Sie eine neue Instanz von erstellen Auto() Und passieren Sie es nichts, es wird wieder Ihren guten alten Ford Pinto erzeugen. Versuchen Sie, sie nebeneinander zu vergleichen, um den Unterschied zu erkennen.

mycar = car () myNewcar = carm ('Dodge', 'Challenger', '2017', 1500, 'Black') Mycar.Move_forward ('25mph') mynewcar.Move_forward ('85mph') 

Gedanken schließen

Es würde saugen, wenn jedes Auto ein 71 'Ford Pinto wäre. Es ist dasselbe für Objekte. Wenn Sie eine neue Klasse als Vorlage für jede Variation eines Objekts erstellen müssten, würde es in der objektorientierten Programmierung wirklich keinen Wert geben. Konstruktoren ermöglichen es Klassen, viel flüssiger und anpassungsfähig zu sein. Sie können so viele verschiedene neue Instanzen eines Objekts erstellen, wie Sie aus derselben Klasse benötigen, ohne jemals zurückzukehren und alles ändern zu müssen.

Üben Sie, eine neue Klasse zu erstellen und einen Konstruktor hinzuzufügen, diese Klasse dann ein bisschen in Ihrem Skript zu verwenden.

Übungen

  1. Erstellen Sie eine neue Klasse namens „Computer.”
  2. Erstellen Sie einen Konstruktor für "Computer", der vier Variablen benötigt.
  3. Drucken Sie eine Ihrer Variablen aus. Sichten Sie seinen Wert neu zu und drucken Sie ihn erneut aus.
  4. Erstellen Sie eine Methode, die mindestens zwei Ihrer Variablen verwendet.
  5. Implementieren Sie einen Konstruktor für „Computer“, der alle Ihre Variablen akzeptiert.
  6. Erstellen Sie eine neue Instanz von „Computer“ und übergeben Sie ihm die richtigen Argumente.
  7. Führen Sie Ihre Methode auf der neuen Instanz von „Computer aus.”
  8. Fügen Sie dem Konstruktor "Computer" Standardwerte hinzu.
  9. Erstellen Sie eine leere Instanz von „Computer.”
  10. Führen Sie Ihre Methode auf der neuen leeren Instanz aus.
Datum Manipulation mit Yest
yest ist ein großartiges Tool, mit dem Benutzer einige komplexe Datumsmanipulationen durchführen können, indem AB einfach zu verstehen. Es ist kein Ko...
Automatische HTML -Formulare mit wwwmechanize
Hier ist ein kurzer Tipp, wie Sie mithilfe einer Linux -Befehlszeile und Perl -Skript automatisch ein HTML -Formular einreichen können. Für dieses Bei...
Kopfhandbuch Seite
Name Head - Ausgabe des ersten Teils von Dateien Synopsis Head [Option]… [Datei]… Beschreibung Drucken Sie die ersten 10 Zeilen jeder Datei in die Sta...