Der Inhalt des Python-Tutorials (Kapitel 6) ist in einem Aufzählungszeichen zusammengefasst.
Vorheriger Artikel: Aufzählungszeichen des Python-Tutorials (Kapitel 5)
Einführung
Grundlegende Prüfung zur Python3 Engineer-Zertifizierung Als Gegenmaßnahme ist dies ein persönliches Memo, das den Inhalt des Python-Tutorials (Buches) in leicht zu merkenden Bulletins zusammenfasst.
Referenzmaterial
Python-Tutorial: https://docs.python.org/ja/3/tutorial/
Kapitel 6: https://docs.python.org/ja/3/tutorial/modules.html
Bücher: https://www.oreilly.co.jp/books/9784873117539/
Thema "Kapitel 6 Modul"
--Python3 Engineer Certification Basic Exam Score
―― 2/40 Fragen (5,0%) ☆ ★★★★ (Wichtigkeit: klein)
--Thema
- Modul
- Moduldatei
- Importmodul
- Modul-Suchpfad
--Wie funktioniert die Modulkompilierung?
- Standardmodul
--Paket
- Paketimport
- \ _ \ _ Init \ _ \ _. Py-Datei
- \ _ \ _ Alle \ _ \ _ Variablen
- \ _ \ _ Pfad \ _ \ _ Variable
6. Modul
- ** Modul ** ist eine Datei mit Python-Definitionen und -Anweisungen.
- Der Dateiname des Moduls lautet "Modulname.py".
- Eine Reihe von Variablen, auf die über den interaktiven Modus oder über Skripte der obersten Ebene zugegriffen werden kann, wird als ** Hauptmodul ** bezeichnet.
- Der Modulname wird in der globalen Variablen ** \ _ \ _ name__ ** im Modul festgelegt.
--Was in einem Modul definiert ist, kann in ein anderes Modul oder Hauptmodul ** importiert ** werden.
-
- Fibo importieren * # Fibo-Modul wird importiert
-
- fibo.fib (1000) * # Rufen Sie die fib () - Funktion des Fibomoduls auf
-
- fib = fibo.fib * # Weisen Sie die Funktion fib () des Fibomoduls einer lokalen Variablen zu
-
- print (fibo. \ _ \ _ Name__) * # Druckmodulname'fibo '
6.1 Weitere Informationen zum Modul
- Wenn Sie eine ausführbare Anweisung in das Modul einfügen, wird sie zum folgenden Zeitpunkt ausgeführt.
--Wenn Sie das Modul als Skript ausführen.
--Wenn von einer Importanweisung aus einem anderen Modul aufgerufen (wenn der Modulname zum ersten Mal gefunden wird).
- Jedes Modul verfügt über eine private Symboltabelle.
- Sie können auch andere Module von einem Modul importieren.
- Der Name des importierten Moduls wird auf der importierten Seite in die globale Symboltabelle eingefügt.
- ** von ** ermöglicht es Ihnen, nur den spezifischen Namen des Moduls zu importieren.
-
- von fibo import fib, fib2 * # Importiert nur die Funktionen fib () und fib2 () des Fibo-Moduls
-
- aus Fibo-Import ** # Andere Namen als Unterstrich importieren _
--import * wird nicht oft verwendet, da es oft die Lesbarkeit beeinträchtigt.
6.1.1 Führen Sie das Modul als Skript aus
- Der Ausführungsbefehl des Python-Moduls lautet wie folgt.
-
- python fibo.py argument * # Ausführungsbefehl
- Wenn Sie das Python-Modul ausführen, enthält \ _ \ _ name__ "\ _ \ _ main__".
-
- if \ _ \ _ name__ == "\ _ \ _ main__": * # Führen Sie den folgenden Code nur aus, wenn Sie das Skript ausführen
6.1.2 Modul-Suchpfad
- Der Interpreter sucht in der folgenden Reihenfolge nach importierten Modulen.
- Innerhalb des ** eingebauten Moduls ** (eingebautes Interpreter-Modul)
- Liste der Verzeichnisse, die von der Variablen ** sys.path ** abgerufen wurden
--sys.path wird an der folgenden Stelle initialisiert.
--Verzeichnis mit Eingabeskript
- Aktuelles Verzeichnis, wenn kein Dateiname angegeben ist
--PYTHONPATH (Liste der Verzeichnisnamen)
- Standard pro Installation
- Das Verzeichnis, in dem sich der symbolische Link befindet, ist nicht im Modul-Suchpfad enthalten.
--sys.path kann nach der Initialisierung programmgesteuert geändert werden.
- Das Verzeichnis mit dem laufenden Skript befindet sich am Anfang des Suchpfads.
- Die Suchreihenfolge liegt vor dem Standardbibliothekspfad.
- (Achtung) Wenn Sie ein Skript mit demselben Namen wie ein Modul in die Standardbibliothek aufnehmen, wird es bevorzugt geladen.
6.1.3 "Kompilierte" Python-Dateien
- Python speichert kompilierte Module im Verzeichnis ** \ _ \ _ pycache__ ** zwischen.
- Der Cache-Name lautet module.version name.pyc
- ** Versionsname ** ist der kompilierte Dateiformatcode, einschließlich der Python-Versionsnummer.
- Kompilierte Module sind plattformunabhängig.
--Python vergleicht das Änderungsdatum und die Änderungszeit des Quellcodes mit der Cache-Version, um festzustellen, ob eine Neukompilierung erforderlich ist.
- Der Cache wird in den folgenden Fällen nicht überprüft.
--Wenn das Modul direkt über die Befehlszeile geladen wird.
- In diesem Fall wird es immer neu kompiliert und das Ergebnis nicht gespeichert.
--Wenn die Quelldatei des Moduls nicht existiert.
--Um die quellenlose Verteilung zu unterstützen, ist Folgendes erforderlich:
- Legen Sie das kompilierte Modul in das Quellverzeichnis.
- Legen Sie die Quelldatei nicht selbst ab.
6.2 Standardmodul
- Python enthält eine Bibliothek mit Standardmodulen.
- Die Modulkonfiguration wird durch die Einstellungen zum Zeitpunkt der Installation bestimmt.
- Es gibt auch integrierte und plattformabhängige Interpreter-Module.
- Das eingebettete Interpreter-Modul wird für Leistungsanforderungen und für den Zugriff auf Betriebssystemprimitive bereitgestellt.
- Plattformabhängige Module enthalten das Winreg-Modul für Windows.
- ** sys module ** ist in allen Python-Interpreten enthalten.
--sys.ps1 ... Definition der primären Eingabeaufforderungszeichenfolge ('>>>')
--sys.ps2 ... Definition der sekundären Eingabeaufforderungszeichenfolge ('...')
--Diese beiden werden nur definiert, wenn sich der Interpreter im interaktiven Modus befindet.
--sys.path ... Eine Liste von Zeichenfolgen, die den Modulsuchpfad des Interpreters angeben.
- Die folgenden Verzeichnisse sind die Anfangswerte von sys.path.
--Verzeichnis mit Eingabeskript
- Aktuelles Verzeichnis, wenn kein Dateiname angegeben ist
--Umgebungsvariable PYTHONPATH
- Eingebauter Standard
6.3 dir () Funktion
- ** Die Funktion dir () ** gibt den vom Modul definierten Namen in einer sortierten Liste von Zeichenfolgen zurück.
- Wenn im Argument ein Modulname angegeben ist, wird der von diesem Modul definierte Name zurückgegeben.
- Wenn kein Argument angegeben wird, wird der auf der aktuellen Ebene definierte Name zurückgegeben.
--Namen umfassen Variablen-, Funktions-, Modulnamen usw.
--Importieren Sie das integrierte Modul, um den Namen der integrierten Funktion oder der Variablen zurückzugeben.
-
- dir (integrierte) * ... Ruft die Liste der integrierten Namen ab
6.4 Paket
- ** Paket ** erstellt Python-Modulnamen unter Verwendung von "punktgetrennten Modulnamen".
- Das eigentliche Paket besteht aus einer hierarchischen Struktur von Verzeichnissen und einer Reihe von Modulen (.py-Dateien).
- Die Verzeichnisse, aus denen das Paket besteht, müssen die Datei ** \ _ \ _ init__.py ** enthalten.
-Verwendung der Datei \ _ \ _ init__.py:
- Ausführung des Paketinitialisierungscodes
- ** \ _ \ _ all__ Satz von Variablen ** (später beschrieben)
6.4.1 Import * aus Paket
- Das Verhalten beim Import * für das Paket ist wie folgt.
-Wenn die Variable \ _ \ _ all__ in der Datei \ _ \ _ init \ _ \ .py definiert ist, importieren Sie das durch die Variable \ _ \ _ all_ definierte Submodul.
-Wenn die Variable \ _ \ _ all__ nicht definiert ist, wird Folgendes importiert.
- Import des entsprechenden Pakets
- Alle im Paketkörper definierten Namen
-Namen, die in der Py-Datei \ _ \ _ init \ _ \ _ definiert sind, und explizit geladene Submodule
6.4.2 Gegenseitige Bezugnahme im Paket
- Wenn das Paket aus Unterpaketen besteht, gibt es zwei Möglichkeiten, auf das Schwesterpaket zu verweisen.
- ** Absoluter Import ** ... vom Importnamen des Modulnamens (absoluter Pfad)
- ** Relativer Import ** ... ftom Modulname (relativer Pfad) Importname
--Verwenden Sie. (Aktuelle Modulhierarchie) oder .. (übergeordnete Hierarchie) als relative Pfade.
--Verwenden Sie den absoluten Import von Modulen, die als Hauptmodul verwendet werden können.
- Weil der Name immer "\ _ \ _ main \ _ \ _" ist.
6.4.3 Pakete, die mehrere Verzeichnisse umfassen
- ** \ _ \ _ Pfad \ _ \ _ Variable ** enthält eine Liste, die das Verzeichnis enthält, in dem \ _ \ _ init \ _ \ _. Py standardmäßig vorhanden ist.
- Die Initialisierung erfolgt vor der Ausführung von \ _ \ _ init \ _ \ _. Py.
- Durch Umschreiben dieser Variablen können Sie die Suche nach Modulen und Unterpaketen beeinflussen, die im Paket enthalten sind.
Nächster Artikel: Der Inhalt des Python-Tutorials (Kapitel 7) ist in einem Aufzählungszeichen (im Aufbau) zusammengefasst.