Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung von drei Methoden zum Importieren benutzerdefinierter Module in Python3

Detaillierte Erläuterung von drei Methoden zum Importieren benutzerdefinierter Module in Python3

不言
不言Original
2018-05-16 13:47:335728Durchsuche

Dieser Artikel führt Sie hauptsächlich in die drei Methoden zum Importieren benutzerdefinierter Module in Python3 ein. Der Artikel führt sie ausführlich anhand von Beispielcode ein, der für das Studium oder die Arbeit eines jeden einen gewissen Referenzlernwert hat

Vorwort

Ich habe kürzlich den Modulabschnitt aus Liao Xuefengs Tutorial gelernt. Wenn Sie nicht verstehen, wie Sie ein Modul anpassen, werfen wir zunächst einen Blick auf die grundlegende Einführung:

Module

In die Entwicklung von Computerprogrammen Je mehr Programmcode geschrieben wird, desto länger wird der Code in einer Datei, wodurch die Wartung immer schwieriger wird.

Um wartbaren Code zu schreiben, gruppieren wir viele Funktionen und legen sie in verschiedene Dateien ab. Auf diese Weise enthält jede Datei relativ wenig Code. In Python wird eine .py-Datei als Modul bezeichnet.

Welche Vorteile bietet der Einsatz von Modulen?

Der größte Vorteil besteht darin, dass es die Wartbarkeit des Codes erheblich verbessert. Zweitens müssen Sie beim Schreiben von Code nicht bei Null anfangen. Wenn ein Modul geschrieben wird, kann es an anderer Stelle referenziert werden. Wenn wir Programme schreiben, beziehen wir uns häufig auf andere Module, einschließlich der in Python integrierten Module und Module von Drittanbietern.

Durch die Verwendung von Modulen können auch Konflikte zwischen Funktionsnamen und Variablennamen vermieden werden. Funktionen und Variablen mit demselben Namen können in verschiedenen Modulen vorhanden sein. Wenn wir das Modul selbst schreiben, müssen wir daher nicht berücksichtigen, dass der Name mit anderen Modulen in Konflikt steht. Achten Sie aber auch darauf, dass es nicht zu Konflikten mit integrierten Funktionsnamen kommt. Klicken Sie hier, um alle integrierten Funktionen von Python anzuzeigen.

Sie denken vielleicht auch: Was wäre, wenn verschiedene Leute Module mit demselben Namen schreiben? Um Konflikte bei Modulnamen zu vermeiden, hat Python eine Methode zum Organisieren von Modulen nach Verzeichnis eingeführt, die als Paket bezeichnet wird.

Zum Beispiel ist eine Datei abc.py ein Modul namens abc und eine Datei xyz.py ist ein Modul namens xyz.

Angenommen, unsere beiden Modulnamen abc und xyz stehen in Konflikt mit anderen Modulen, sodass wir die Module durch Pakete organisieren können, um Konflikte zu vermeiden. Die Methode besteht darin, einen Paketnamen der obersten Ebene auszuwählen, z. B. mycompany, und ihn im folgenden Verzeichnis zu speichern:

mycompany
├─ __init__.py
├─ abc.py
└─ xyz.py

Nach der Einführung des Pakets treten keine Konflikte mit anderen Modulen auf, solange der Paketname der obersten Ebene nicht mit anderen in Konflikt steht. Jetzt wird der Modulname von abc.py zu mycompany.abc, ebenso wird der Modulname von xyz.py zu mycompany.xyz.

Bitte beachten Sie, dass sich unter jedem Paketverzeichnis eine Datei __init__.py befindet. Diese Datei muss vorhanden sein, andernfalls behandelt Python dieses Verzeichnis als normales Verzeichnis und nicht als Paket. __init__.py kann eine leere Datei sein oder Python-Code enthalten, da __init__.py selbst ein Modul ist und sein Modulname mycompany ist.

Ebenso kann es mehrstufige Verzeichnisse geben, um eine mehrstufige Paketstruktur zu bilden. Beispielsweise die folgende Verzeichnisstruktur:

mycompany
├─ web
│ ├─ __init__.py
│ ├─ utils.py
│ └─ www.py
├ ─ __init__.py
├─ abc.py
└─ xyz.py

Der Modulname der Datei www.py ist mycompany.web.www und die Modulnamen der Die beiden Dateien utils.py sind jeweils mycompany.utils und mycompany.web.utils.

Wenn Sie Ihr eigenes Modul erstellen, sollten Sie auf die Benennung achten, da diese nicht mit dem mit Python gelieferten Modulnamen in Konflikt geraten darf. Wenn das System beispielsweise mit dem sys-Modul geliefert wird, darf Ihr Modul nicht sys.py heißen, da Sie sonst das mit dem System gelieferte sys-Modul nicht importieren können.

mycompany.web ist ebenfalls ein Modul. Bitte weisen Sie auf die diesem Modul entsprechende .py-Datei hin.

Zusammenfassung

Ein Modul ist eine Sammlung von Python-Codes, die andere Module verwenden können und auch von anderen Modulen verwendet werden können.

Bitte beachten Sie beim Erstellen Ihres eigenen Moduls:

  • Der Modulname muss der Python-Variablennamenskonvention folgen und darf keine chinesischen oder Sonderzeichen verwenden

  • Der Modulname sollte nicht mit dem Systemmodulnamen in Konflikt stehen. Überprüfen Sie am besten, ob das Modul bereits in der interaktiven Python-Umgebung vorhanden ist Erfolgreich ist, bedeutet dies, dass dieses Modul im System vorhanden ist.

Module sind eine gute Sache. Die Experten teilen viele Module in Open Source, was auch die Entwicklung aller beschleunigt.

Weil ich gerade erst am Anfang stehe Ich verstehe viele Details im Internet nicht. Als ich nach Informationen suchte, stellte ich fest, dass die Anleitungen der Experten zu prägnant waren, was es für mich als Anfänger sehr schwierig machte, erfolgreich zu sein.

Also nimm es hier auf.

Starten

Der erste Weg ist der direkte Import

Hier gibt es eine wichtige Voraussetzung , das heißt, Ihre py-Ausführungsdatei und Ihr Modul gehören zum selben Verzeichnis (übergeordnetes Verzeichnis), wie unten gezeigt:

  • main.py und pwcong-Modul sind zusammen Das Python-Verzeichnis

  • Ausführungsdatei ist main.py

  • pwcong-Ordner ist ein Modul

Ich habe die vom pwcong-Modul bereitgestellten Funktionen in __init__.py geschrieben, das nur eine Hi-Funktion bereitstellt:

# pwcong 模块的 __init__.py
# -*- coding: utf-8 -*-
def hi():
 print("hi")

Führen Sie die Datei main.py aus, um das Modul direkt zu importieren :

# main.py
# -*- coding: utf-8 -*-
import pwcong
pwcong.hi()

Dann führen wir main.py aus und wir können sehen, dass das Befehlszeilenfenster den Satz „hi“ ausgibt. Die erste Methode ist abgeschlossen.

Die Art und Weise, das Modul zu verwenden, ist: Zuerst importieren -> dann die module.variable|Funktion eingeben, wie z. B. pwcong.hi() im obigen Beispiel

Zweitens importieren Sie den Pfad des benutzerdefinierten Moduls über das sys-Modul

Wenn sich die ausführbare Datei und das Modul nicht im selben Verzeichnis befinden, kann das benutzerdefinierte Modul nicht gefunden werden Direktimport. Wie unten gezeigt:

  • Die Ausführungsdatei main.py befindet sich im Hauptverzeichnis

  • Der pwcong Modul befindet sich im Python-Verzeichnis Weiter

Das sys-Modul ist in Python integriert, daher sind die Schritte für uns zum Importieren eines benutzerdefinierten Moduls wie folgt:

  1. Importieren Sie zuerst das Systemmodul

  2. Dann verwenden Sie die Funktion sys.path.append(path) , um das Verzeichnis zu importieren, in dem sich das benutzerdefinierte Modul befindet

  3. Importieren Sie das benutzerdefinierte Modul.

Zu diesem Zeitpunkt wird main.py wie folgt geschrieben:

# main.py
# -*- coding: utf-8 -*-
import sys
sys.path.append(r"C:\Users\Pwcong\Desktop\python")
import pwcong
pwcong.hi()

Führen Sie schließlich die Datei main.py aus und geben Sie schließlich hi aus. Die zweite Methode ist abgeschlossen .

Die dritte Methode besteht darin, das benutzerdefinierte Modul über die pth-Datei zu finden

Das Prinzip dieser Methode besteht darin, Systemvariablen zu verwenden, um den Pfad zu scannen Variable zum Importieren des Moduls. Sie können es dem Systempfad hinzufügen. Ich empfehle jedoch weiterhin die Verwendung der pth-Datei-Ergänzung.

Die Modul- und ausführbare Dateiverzeichnisstruktur ist die gleiche wie im Bild unten:

  • Die ausführbare Datei main.py befindet sich in das Hauptverzeichnis

  • Das pwcong-Modul befindet sich im Python-Verzeichnis

Wir erstellen eine module_pwcong.pth-Datei, deren Inhalt das Verzeichnis ist wo sich das pwcong-Modul befindet:

C:UsersPwcongDesktoppython

Legen Sie die Datei module_pwcong.pth hier ab:

Python-Installationsverzeichnis Python35Libsite-packages

Zum Beispiel meins:

Dann importiert und verwendet main.py das benutzerdefinierte Modul:

# -*- coding: utf-8 -*-
import pwcong
pwcong.hi()

Führen Sie schließlich das aus Mit der main.py-Datei können Sie die Ausgabe auf die dritte Art und Weise beenden.




Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von drei Methoden zum Importieren benutzerdefinierter Module in Python3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn