Bis jetzt haben wir einige Möglichkeiten kennengelernt, unseren Python-Code zu organisieren.
Das erste, was wir gut gemacht haben, wir haben Python einfach in eine Datei geschrieben und das organisiert es.
Rechts?
Unser gesamter Code war bisher in einer einzigen Datei.
So haben wir unseren Code organisiert.
Als nächstes lernten wir über Funktionen und Funktionen wurden verwendet, um keinen Code zu schreiben, den wir immer
wieder wiederholen. Wir könnten Funktionen schreiben, die wir überall in unserer Datei verwenden können, damit wir diese
Funktionen immer wieder aufrufen können und wir können die Funktionen entsprechend benennen, damit unser Code Sinn
macht.
Und dann haben wir etwas über Klassen gelernt, schreiben diese Blaupausen, aus denen wir Objekte erstellen können.
Wir können neue Python-Datentypen instanziieren, die über diejenigen hinausgehen, die sie uns gerade gegeben haben.
Rechts.
Anstatt nur Wörterbücher und Listen zu haben, können wir unsere eigenen benutzerdefinierten erstellen, sobald unsere eigenen Listen möglicherweise
zusätzliche Funktionen haben.
Und wir sind in der Lage, Klassen zu verwenden, um unseren Code so zu organisieren, dass er sie verpackt und jeder Klasse eine bestimmte
Methode und ein bestimmtes Attribut gibt, das sie für uns gut verpackt.
Wir haben auch etwas über funktionale Programmierung gelernt und wie wir, anders als beispielsweise
bei der objektorientierten Programmierung, wo wir viele Klassen mit funktionaler Programmierung sehen, einfach viele Funktionen verwenden,
viele reine Funktionen.
Und wir haben Daten, die wir gerade an diese Funktionen übergeben haben, und wir organisieren die Dinge in kleine kleine Stücke.
All diese Dinge waren für uns gedacht, um unseren Code sauber zu halten, unseren Code wartungsfreundlicher zu machen
und unseren Code so zu organisieren, denn je mehr Codezeilen wir schreiben, desto schwieriger wird es, alles im Kopf
zu behalten.
Wenn andere Personen Ihrem Team beitreten, um an Ihrem Projekt zu arbeiten, benötigen sie eine einfache Möglichkeit, herauszufinden, wie die Dinge
funktionieren.
Aber wir haben immer noch ein Problem, und dieses Problem besteht darin, dass alles in dieser einen Datei enthalten ist, alle
Funktionen, alle Klassen, die wir geschrieben haben, sind in nur einer Dot-Pi-Datei enthalten.
Aber im wirklichen Leben ist dies nicht der Fall.
Wir haben viel mehr Code und können nicht nur eine Datei mit Millionen Codezeilen haben.
Wie bleiben wir also organisiert?
Brunnen.
Wenn wir mehrere Python-Dateien hätten.
So, weil unser Projekt immer größer wird.
Würde das funktionieren?
Gibt es eine Möglichkeit, all diese Dateien miteinander zu verknüpfen?
Tatsächlich gibt es und dies ist in der gesamten Industrie eine sehr gängige Praxis, und wir nennen
diese Art der Organisation von Codemodulen.
Und Module sind einfach, nun, diese Dateien, jede dieser Dateien, jede Dot-Py-Datei ist ein Modul.
Und indem wir diese Module bauen, so haben wir verschiedene Funktionen gebaut, so wie wir verschiedene
Klassen gebaut haben, denn in diesen Dateien können wir Klassen haben, wir können Funktionen haben, aber wir können auch
verschiedene Dateien haben.
Also eine Schicht höher, um unseren Code aufzuteilen.
Und in diesem Abschnitt werden wir alles über Module lernen und versuchen, es zu beherrschen und zu sehen, wie
wir organisierten Code schreiben können.
Werfen wir einen Blick darauf, Sie können hier drüben sehen, wenn ich in unserem Reppel auf philes klicke, haben wir eine Haupt-DCPI und
jedes Mal, wenn ich diesen Herbst auf Ausführen klicke, laufe ich.
Aber was ist, wenn wir mehr Dateien haben?
Was ist, wenn ich hier eine weitere Datei hinzufüge und wir sie Utility Dot Pi nennen?
Basierend auf dem, was ich Ihnen gerade gesagt habe, sind diese beiden Dinge das Richtige für das Modul. Haupt-DCPI ist
ein Modul-Dienstprogramm.
Tappy ist ein Modul.
Und beim Schreiben von Modulen verwenden wir die gleichen Prinzipien wie Variablen in Python, die Schlangen-Großschreibung ist, das heißt,
wenn es sich um Leerzeichen handelt, verwenden wir Unterstriche, alles ist Kleinbuchstaben.
Also, wie teilen wir diese Module auf und das kommt mit der Übung, wenn Sie gerade erst anfangen, ist es schwer zu
sagen, was steckt dahinter?
Was gehört in welche Datei?
Aber es ist ähnlich wie bei Klassen, oder?
Ähnlich wie bei Funktionen.
Wir möchten unseren Code in sinnvolle Abschnitte unterteilen.
Nehmen wir noch einmal an, wir arbeiten bei Netflix.
Möglicherweise haben wir eine Datei für die Videos.
Möglicherweise haben wir eine andere Datei oder ein Modul für die Anmeldung eines Benutzers, vielleicht eine andere Datei
für Analysen und das Ermitteln von Empfehlungen für Benutzer.
Wir möchten diese Klassen und Funktionen in einer sinnvollen Datei zusammenfassen.
Nun, eine der gebräuchlichsten Möglichkeiten, ein Modul zu verwenden, ist so etwas wie ein Dienstprogramm.
Nehmen wir an, wir möchten ein Utility-Modul erstellen, das eine Art Werkzeuggürtel hat, sehr einfache
Funktionen, die wir in unserem gesamten Projekt verwenden können, da wir uns hier mehrere Dateien
vorstellen können.
Lassen Sie uns also ein sehr einfaches Beispiel erstellen.
Ich werde sagen, dass hier eine Multiplikationsfunktion existiert.
Und das braucht einen Namen eins und eine Nummer zwei.
Und hier werden wir Namwon Times einfach auf eine sehr einfache Funktion zurückgeben und wieder haben
wir auch eine Divisionsfunktion.
Und ja, das ist irgendwie nutzlos, weil wir in Python einfach das Plus oder den Operanden dividieren können.
Aber bleib bei mir und versuche, dir ein Beispiel zu zeigen.
In Ordnung, also Nummer zwei, ich gebe Nummer eins geteilt durch Nummer zwei zurück, nett und einfach.
Also das.
Ist unser Gebrauchsmuster, das all diese Funktionen für uns hat.
Beachten Sie hier, dass wir in dieser Datei tatsächlich nichts tun.
Ich definiere einfach Funktionen, aber ich führe keine der Funktionen aus.
Aber sagen wir, wir haben dieses Dienstprogrammmodul und ich möchte es in meiner Hauptfalle verwenden.
Wie würden wir dabei vorgehen?
Nun, die Art und Weise, wie wir zwischen diesen beiden Dateien kommunizieren, ist ziemlich einfach. Wir müssen lediglich den
Importbefehl verwenden, den wir importieren, und ihm dann den Dateinamen geben, den wir importieren möchten.
Was wollen wir importieren?
Wir wollen das Dienstprogramm einfach so importieren.
Und beachten Sie, dass ich den Punktkuchen nicht hinzufüge, weil wir davon ausgehen, dass alles, was wir importieren werden,
eine Python-Datei ist.
Wir brauchen das also nicht.
Nur der Name, einfach so.
Lassen Sie uns nun das Dienstprogramm hier drucken.
Wenn ich das laufe.
Whoa, sehen Sie, dass wir das Modul-Dienstprogramm von haben und dann ist dies ein Dateipfad, den diese Website für uns generiert, also
spielt es keine Rolle.
Nun, hier sind einige Dinge passiert.
Zum einen haben wir diesen PAE-Cache-Ordner generiert, Unterstrich, Unterstrich, PAE-Cache.
Und oh, Junge, was ist das für ein Kauderwelsch?
Hmm, das ist ziemlich verwirrend, oder?
Nun, dieses Kuchengeld wird jedes Mal erstellt, wenn wir eine Datei mit, sagen wir, Befürwortung ausführen.
Also, wenn wir Module verwenden.
Sie sehen, was Pae Cash macht, ist, wenn wir klicken, ausführen.
Der Dolmetscher erstellt diesen Podcast-Ordner und sagt: Hey, ich führe diese Datei aus.
Dieser darf nichts ablegen, was Dateiimporte nicht bezahlen kann, sagen wir Dienstprogramm.
In unserem Fall werde ich es einlösen.
Sehen Sie also, wie hier Punkt PC steht.
Dies liegt daran, dass der C-Python-Interpreter verwendet wird.
Denken Sie daran, dies ist das C-Python, das der geschriebene Interpreter ist, und C, also ist dies tatsächlich
eine kompilierte Datei, sodass sich beim nächsten Klicken auf Ausführen hier auf meinem Haupt-DCPI nichts ändert, da sich nichts ändert,
anstatt das Dienstprogramm zu laden Dopy, es wird diese kompilierte Version des Dienstprogramms laden, da sich nichts geändert
hat und das Dienstprogramm DCPI.
Und das macht die Sache schneller, als ich erneut versuchte, Maeng Pie zu starten.
Das ist Caching.
Caching ist, hey, ich werde mir das merken, und das ist die Kompilierungsversion,
damit ich den Kompilierungsschritt nicht noch einmal durchlaufen muss.
Beachten Sie jedoch, dass die Hauptdatei nicht kompiliert wird, da wir sie jedes Mal ausführen.
Wenn wir nun die Utility-Funktion so ändern, dass die Division nicht drin ist, klicke ich auf Ausführen und Sie bemerken es
hier nicht.
Dies wurde jedoch jetzt erneut ausgeführt, da wir eine andere Datei haben.
Sie sehen, wir haben hier multiplizieren, aber nicht dividieren.
Also lasst uns die Teilung wieder zurückbringen.
Zurück hierher, klicken, ausführen.
Und los gehts, wir haben hier zwei jetzt eine Kluft, aber das ist etwas, das wir nicht anfassen.
Dies kommt bei jedem Editor, den wir verwenden, einfach unter die Haube.
Und in einigen Videos zeigen wir Ihnen, wie dies auch passiert, wenn Sie so etwas wie ein Tortendiagramm
verwenden.
Dies ist nur etwas, was uns Editoren erlauben, damit unsere Programme schneller laufen können.
Somit habe ich jetzt Zugriff.
Machen wir das ein bisschen kleiner.
Ich habe jetzt Zugriff auf das Dienstprogramm.
Und hier ist der interessante Teil.
Wenn ich das hier tue, sieh dir das an.
Ich habe Zugang zum Dividieren und Multiplizieren, damit ich Zahlen multiplizieren kann.
Sagen wir zwei und drei.
Klicken Sie auf Ausführen.
Und ich kann das Dienstprogrammmodul in meiner Hauptdatei verwenden, sehr, sehr cool, wenn ich aufteile und auf Ausführen klicke.
Das kann ich auch gebrauchen.
Sehr, sehr cool, und ich kann so oft importieren, wie ich möchte, wenn ich hier eine andere Datei hätte und eine andere
Sache importieren möchte, sagen wir, es gibt ein Dienstprogramm für die Datei.
Nun, ich kann das importieren und so viele Dinge importieren, wie ich möchte, und sie in meinen Dateien verwenden.
Wie cool ist das?
Jetzt haben wir also eine Möglichkeit, unseren Code zu organisieren und all diese Dateien miteinander zu kommunizieren, denn
im wirklichen Leben haben wir große Projekte und diese großen Projekte werden von verschiedenen Teams, verschiedenen
Programmierern bearbeitet.
Und wir brauchen eine Möglichkeit, mit all diesen Dateien zu arbeiten.
Und indem wir die Import-Anweisungen zwischen Modulen verwenden, können wir die Funktionalität genauso verwenden, wie wir die Funktionalität,
die uns Funktionen zwischen verschiedenen Dateien zur Verfügung gestellt haben, verwenden konnten.
Und meistens, wenn Sie in einem Unternehmen arbeiten, sind die ersten paar Zeilen einer
Dot-Pi-Datei normalerweise Importanweisungen, da Sie normalerweise mit anderen Dateien kommunizieren.
Lassen Sie uns im nächsten Video mehr erfahren.