„Zhonggu Education Python Video Tutorial“ ist ein Einführungs-Tutorial für die Python-Entwicklung. Es stellt die Eigenschaften und den Anwendungsbereich der Python-Sprache, die grundlegenden Datentypen, bedingten Beurteilungen und Schleifen, Funktionen sowie die einzigartigen Slices und Listen von Python vor . Generativer Ausdruck. Hoffentlich hilft Ihnen dieses Python-Tutorial dabei, schnell loszulegen und einfache Python-Programme zu schreiben.
Adresse für die Kurswiedergabe: http://www.php.cn/course/501.html
Der Unterrichtsstil des Lehrers:
Die Vorträge des Lehrers sind einfach und ausführlich, klar in der Struktur, werden Schicht für Schicht analysiert, ineinandergreifend, streng in der Argumentation, streng in der Struktur und im Gebrauch Die logische Kraft des Denkens, um die Aufmerksamkeit der Schüler zu erregen. Nutzen Sie die Vernunft, um den Unterrichtsprozess im Klassenzimmer zu steuern. Durch das Anhören der Vorlesungen des Lehrers lernen die Schüler nicht nur Wissen, sondern erhalten auch eine Denkschulung und werden auch von der strengen akademischen Haltung des Lehrers beeinflusst und beeinflusst
Der schwierigere Punkt in diesem Video ist objektiv- orientiert - Klassen und Objekte Jetzt:
Alles in Python ist ein Objekt. Klassen bieten einen Mechanismus zum Erstellen neuer Objekttypen. In diesem Tutorial werden wir nicht über die Grundkenntnisse von Klassen und objektorientierter Programmierung sprechen, sondern uns auf ein besseres Verständnis der objektorientierten Programmierung in Python konzentrieren. Angenommen, wir verwenden Python-Klassen im neuen Stil, die von der übergeordneten Objektklasse erben.
Klasse definieren
Die Klassenanweisung kann eine Reihe von Attributen, Variablen und Methoden definieren, die von Instanzobjekten dieser Klasse gemeinsam genutzt werden. Nachfolgend finden Sie eine einfache Klassendefinition:
class Account(object): num_accounts = 0 def __init__(self, name, balance): self.name = name self.balance = balance Account.num_accounts += 1 def del_account(self): Account.num_accounts -= 1 def deposit(self, amt): self.balance = self.balance + amt def withdraw(self, amt): self.balance = self.balance - amt def inquiry(self): return self.balance
Die Klassendefinition führt die folgenden neuen Objekte ein:
Klassenobjekt
Instanzobjekt
Methodenobjekt
Klassenobjekt
Wenn während der Programmausführung eine Klassendefinition auftritt, wird ein neuer Namespace erstellt. Der Namespace enthält alle Klassenvariablen und Methodendefinitionen Bindung. Beachten Sie, dass dieser Namespace keinen neuen lokalen Bereich erstellt, den Klassenmethoden verwenden können. Daher sind für den Zugriff auf Variablen innerhalb von Methoden vollständig qualifizierte Namen erforderlich. Die Account-Klasse im vorherigen Abschnitt demonstriert diese Funktion. Methoden, die versuchen, auf die Variable „num_of_accounts“ zuzugreifen, müssen den vollständig qualifizierten Namen „Account.num_of_accounts“ verwenden. Andernfalls wird der folgende Fehler angezeigt, wenn der vollständig qualifizierte Name nicht in der Methode „__init__“ verwendet wird ausgelöst:
class Account(object): num_accounts = 0 def __init__(self, name, balance): self.name = name self.balance = balance num_accounts += 1 def del_account(self): Account.num_accounts -= 1 def deposit(self, amt): self.balance = self.balance + amt def withdraw(self, amt): self.balance = self.balance - amt def inquiry(self): return self.balance >>> acct = Account('obi', 10) Traceback (most recent call last): File "python", line 1, in <module> File "python", line 9, in __init__ UnboundLocalError: local variable 'num_accounts' referenced before assignment
Am Ende der Ausführung der Klassendefinition wird ein Klassenobjekt erstellt. Der Gültigkeitsbereich, der vor der Eingabe der Klassendefinition galt, wird jetzt wiederhergestellt und das Klassenobjekt ist an den Klassennamen im Klassendefinitionsheader gebunden.
Lassen Sie uns zunächst vom Thema abweichen. Sie fragen sich vielleicht, ob die erstellte Klasse ein Objekt ist. Was ist die Klasse des Objekts? . Im Einklang mit der Python-Philosophie, dass alles ein Objekt ist, haben Klassenobjekte eine Klasse, die die Typklasse in den neuen Stilklassen von Python ist.
>>> type(Account) <class 'type'>
Um Sie noch etwas zu verwirren: Der Kontotyp ist Typ. Die Typklasse ist eine Metaklasse, die zum Erstellen anderer Klassen verwendet wird, die wir später im Tutorial vorstellen werden.
Klassenobjekte unterstützen Attributreferenz und Instanziierung. Auf Eigenschaften wird über die standardmäßige Punktsyntax verwiesen, d. h. auf das Objekt, gefolgt von einem Punkt und dann dem Eigenschaftsnamen: obj.name. Gültige Eigenschaftsnamen sind alle Variablen- und Methodennamen, die im Klassennamensraum erscheinen, nachdem das Klassenobjekt erstellt wurde. Beispiel:
>>> Account.num_accounts >>> 0 >>> Account.deposit >>> <unbound method Account.deposit>
Die Klasseninstanziierung verwendet Funktionsnotation. Bei der Instanziierung wird das Klassenobjekt wie bei einer normalen Funktion ohne Parameter aufgerufen, z. B. bei der Kontoklasse unten:
>>> Account()
Nachdem das Klassenobjekt instanziiert wurde, wird das Instanzobjekt zurückgegeben, wenn die Methode __init__ definiert ist Die Klasse wird aufgerufen, wobei das Instanzobjekt als erster Parameter übergeben wird. Diese Methode führt einen benutzerdefinierten Initialisierungsprozess durch, z. B. die Initialisierung von Instanzvariablen. Für die Klasse „Konto“ werden beispielsweise der Kontoname und der Kontostand festgelegt und die Anzahl der Instanzobjekte wird um 1 erhöht.
Instanzobjekt
Wenn das Klassenobjekt ein Ausstecher ist, ist das Cookie das Ergebnis der Instanziierung des Klassenobjekts. Alle gültigen Operationen an Instanzobjekten sind Verweise auf Eigenschafts-, Daten- und Methodenobjekte.
Methodenobjekt
Methodenobjekt ähnelt Funktionsobjekt. Wenn x eine Instanz der Account-Klasse ist, ist x.deposit ein Beispiel für ein Methodenobjekt. In der Methodendefinition gibt es einen zusätzlichen Parameter: self. self zeigt auf die Klasseninstanz. Warum müssen wir Instanzen als Parameter an Methoden übergeben? Methodenaufrufe veranschaulichen am besten:
>>> x = Account() >>> x.inquiry() 10
Was passiert, wenn eine Instanzmethode aufgerufen wird? Dabei ist zu beachten, dass x.inquiry() ohne Parameter aufgerufen wird, obwohl die Methodendefinition den Parameter self enthält. Was genau passiert also mit diesem Parameter?
Das Besondere ist, dass das Objekt, auf das die Methode einwirkt, als erster Parameter der Funktion übergeben wird. In unserem Beispiel entspricht ein Aufruf von x.inquiry() Account.f(x). Im Allgemeinen entspricht der Aufruf einer Methode mit n Parametern dem Einfügen des Aktionsobjekts der Methode an der ersten Parameterposition.
Das obige ist der detaillierte Inhalt vonRessourcenempfehlung für das Python-Video-Tutorial von Zhonggu Education. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!