Was sind die Module in Python?
Ein Modul ist eine Datei mit Python-Code. Der Code kann in Form von Variablen, Funktionen oder Klassen definiert sein. Der Dateiname wird zum Modulnamen.
Wenn Ihr Dateiname beispielsweise guru99.py lautet, lautet der Modulname guru99 . Mit der Modulfunktionalität können Sie Ihren Code in verschiedene Dateien aufteilen, anstatt alles in eine Datei zu schreiben.
In diesem Tutorial lernen Sie:
- Was sind die Module in Python?
- Python-Importmodul
- Wie erstelle und importiere ich ein Modul in Python?
- Importieren einer Klasse in Python
- Verwenden Sie von, um das Modul zu importieren
- Alles aus dem Modul importieren
- Verwenden des Importmoduls
- Import * verwenden
- Die dir () Funktion
- Pakete
- PythonModuleSearchPath
- Modulalias beim Import verwenden
- Absolute und relative Importe in Python
- UsingAbsoluteImports
- UsingRelativeImports
Was ist das Python-Importmodul?
Eine Datei wird in Python als Modul betrachtet. Um das Modul zu verwenden, müssen Sie es mit dem Schlüsselwort import importieren . Die in der Datei vorhandenen Funktionen oder Variablen können durch Importieren des Moduls in einer anderen Datei verwendet werden. Diese Funktionalität ist in anderen Sprachen wie Typoskript, JavaScript, Java, Ruby usw. verfügbar.
Wie erstelle und importiere ich ein Modul in Python?
Jetzt erstellen wir ein Modul und importieren es in eine andere Datei.
Hier ist der Ablauf zum Erstellen und Importieren des Moduls, wie im Screenshot gezeigt:
Befolgen Sie die angegebenen Schritte, um ein Modul in Python zu erstellen.
Die zum Testen des Codes verwendete Ordnerstruktur lautet wie folgt:
modtest/test.pydisplay.py
Schritt 1) Erstellen Sie eine Datei und nennen Sie sie test.py.
Schritt 2) Erstellen Sie in test.py eine Funktion namens display_message ()
Def display_message():return "Welcome to Guru99 Tutorials!"
Schritt 3) Erstellen Sie nun eine weitere Datei display.py.
Schritt 4) Importieren Sie in display.py die Datei moduletest.py wie folgt:
import test
Beim Importieren müssen Sie nicht die Datei test.py angeben, sondern nur den Namen der Datei.
Schritt 5)
Anschließend können Sie die Funktion display_message () aus test.py in display.py aufrufen. Sie müssen module_name.function_name verwenden.
Zum Beispiel test.display_message ().
Import testprint(test.display_message())
Schritt 6)
Wenn Sie display.py ausführen, erhalten Sie die folgende Ausgabe:
Welcome to Guru99 Tutorials!
Importieren einer Klasse in Python
Zuvor haben wir ein einfaches Modul mit einer Funktion gesehen. Hier wird eine Klasse erstellt und die Klasse in einer anderen Datei referenziert.
Die Ordnerstruktur zum Testen des Codes lautet wie folgt:
myproj/Car.pydisplay.py
Erstellen Sie eine Datei mit dem Namen Car.py mit dem folgenden Code:
Dateiname: Car.py.
class Car:brand_name = "BMW"model = "Z4"manu_year = "2020"def __init__(self, brand_name, model, manu_year):self.brand_name = brand_nameself.model = modelself.manu_year = manu_yeardef car_details(self):print("Car brand is ", self.brand_name)print("Car model is ", self.model)print("Car manufacture year is ", self.manu_year)def get_Car_brand(self):print("Car brand is ", self.brand_name)def get_Car_model(self):print("Car model is ", self.model)
In der Datei Car.py gibt es die Attribute brand_name, model und manu_year. Die innerhalb der Klasse definierten Funktionen sind car_details (), get_Car_brand (), get_Car_model ().
Verwenden wir nun die Datei Car.py als Modul in einer anderen Datei namens display.py.
Dateiname: display.py
import Carcar_det = Car.Car("BMW","Z5", 2020)print(car_det.brand_name)print(car_det.car_details())print(car_det.get_Car_brand())print(car_det.get_Car_model())
Ausgabe:
BMWCar brand is BMWCar model is Z5Car manufacture year is 2020Car brand is BMWCar model is Z5
So können wir über das Car-Modul von Car.py aus auf alle Variablen und Funktionen zugreifen.
Verwenden Sie von, um das Modul zu importieren
Sie können nur einen kleinen Teil des Moduls importieren, dh nur die erforderlichen Funktionen und Variablennamen aus dem Modul, anstatt den vollständigen Code zu importieren.
Wenn Sie nur bestimmte Dinge importieren möchten, können Sie das Schlüsselwort "from" verwenden, um das zu importieren, was Sie möchten.
Die Syntax lautet also
from module import your function_name , variables,… etc.
Die zum Testen des Codes verwendete Ordnerstruktur lautet wie folgt:
modtest/test.pydisplay.py
In test.py gibt es 2 Funktionen wie gezeigt:
Dateiname: test.py
defdisplay_message():return "Welcome to Guru99 Tutorials!"def display_message1():return "All about Python!"
Jetzt möchten Sie die Funktion display_message (). Auf die Funktion oder Variable, die Sie importieren, kann wie unten gezeigt direkt zugegriffen werden:
Dateiname: display.py
from test import display_messageprint(display_message())
Ausgabe:
Welcome to Guru99 Tutorials!
Wenn Sie nun zufällig die Funktion display_message1 () verwenden, wird ein Fehler ausgegeben, dass die Funktion nicht wie unten gezeigt definiert ist:
from test import display_messageprint(display_message1())
Ausgabe:
Traceback (most recent call last):File "display.py", line 3, inprint(display_message1())Name Error: name 'display_message1' is not defined
Alles aus dem Modul importieren
Beim Importieren können Sie das gesamte Modul mithilfe des Imports importieren, gefolgt vom Modulnamen, dh dem Dateinamen oder der zu verwendenden Bibliothek.
Syntax:
Import module
Oder mit
from module import *
Die zum Testen des Codes verwendete Ordnerstruktur lautet wie folgt:
modtest/test.pydisplay.py
Im Folgenden finden Sie die Codedetails in test.py.
my_name = "Guru99"my_address = "Mumbai"defdisplay_message():return "Welcome to Guru99 Tutorials!"def display_message1():return "All about Python!"
Verwenden des Importmoduls
Wenn Sie nur den Modulnamen importieren, um auf die Variablen und Funktionen im Modul zu verweisen, muss der Modulname vorangestellt werden.
Beispiel
Dateiname: display.py
Import testprint(test.display_message())print(test.display_message1())print(test.my_name)print(test.my_address)
Der Modulnamentest wird verwendet, um auf die Funktion und Variablen innerhalb des Modultests zu verweisen.
Ausgabe:
Welcome to Guru99 Tutorials!All about Python!Guru99Mumbai
Import * verwenden
Sehen wir uns ein Beispiel mit import * an . Mit import * können Sie direkt auf die Funktionen und Variablen zugreifen, wie im folgenden Beispiel gezeigt:
from test import *print(display_message())print(display_message1())print(my_name)print(my_address)
Ausgabe:
Welcome to Guru99 Tutorials!All about Python!Guru99Mumbai
Die dir () Funktion
Das dir () ist eine in Python integrierte Funktion. Das dir () gibt alle Eigenschaften und Methoden zurück, einschließlich der integrierten Eigenschaften des angegebenen Objekts.
Wenn also dir () für das Modul verwendet wird, erhalten Sie die Variablen und Funktionen, die im Modul vorhanden sind.
Hier ist ein Arbeitsbeispiel für dir () in einem Modul. Wir haben eine Klasse namens Car.py, lassen Sie uns Car importieren und dir () zuweisen, um die Ausgabe zu sehen.
Die Ordnerstruktur zum Testen des Codes lautet wie folgt:
test prop/Car.pytest.py
Dateiname: Car.py.
class Car:brand_name = "BMW"model = "Z4"manu_year = "2020"def __init__(self, brand_name, model, manu_year):self.brand_name = brand_nameself.model = modelself.manu_year = manu_yeardef car_details(self):print("Car brand is ", self.brand_name)print("Car model is ", self.model)print("Car manufacture year is ", self.manu_year)def get_Car_brand(self):print("Car brand is ", self.brand_name)def get_Car_model(self):print("Car model is ", self.model)
Dateiname: test.py
import Carclass_contents = dir(Car)print(class_contents)
Die Ausgabe gibt uns den Namen der Klasse und alle in Car.py definierten Funktionen.
Sie können auch versuchen, dir () für ein in Python verfügbares integriertes Modul zu verwenden. Versuchen wir dasselbe auf dem json- Modul wie im folgenden Beispiel gezeigt. Es werden alle im json- Modul verfügbaren Eigenschaften und Methoden angezeigt .
Import jsonjson_details = dir(json)print(json_details)
Ausgabe:
['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_encoder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'load', 'loads', 'scanner']
Pakete
Ein Paket ist ein Verzeichnis, in dem alle Module definiert sind. Damit ein Python-Interpreter es als Paket behandelt, sollte Ihr Verzeichnis die Datei init.pyfile haben. Die Datei init.py erstellt das Verzeichnis als Paket. Hier ist das Layout des Pakets, an dem wir arbeiten werden.
Der Name des Pakets ist mein Paket . Um mit dem Paket zu arbeiten, erstellen Sie ein Verzeichnis mit dem Namen package /. Erstellen Sie im Verzeichnis eine leere Datei mit dem Namen __init__.py. Erstellen Sie 3 weitere Dateien module1.py, module2.py und module3.py und definieren Sie die Funktionen wie im Screenshot gezeigt. Hier sind die Details von module1.py, module2.py und module3.py
module1.py
def mod1_func1():print("Welcome to Module1 function1")def mod1_func2():print("Welcome to Module1 function2")def mod1_func3():print("Welcome to Module1 function3")
module2.py
def mod2_func1():print("Welcome to Module2 function1")def mod2_func2():print("Welcome to Module2 function2")def mod2_func3():print("Welcome to Module2 function3")
module3.py
def mod3_func1():print("Welcome to Module3 function1")def mod3_func2():print("Welcome to Module3 function2")def mod3_func3():print("Welcome to Module3 function3")
Das Paket ist gebrauchsfertig. Rufen Sie nun das Paket in einer Ihrer Dateien wie folgt auf: test.py:
Hier wird mypackage.module1 importiert und erhält einen Aliasnamen als mod1. Ebenso können Sie andere Module module2.py und module3.py aus meinem Paket verwenden.
import mypackage.module1 as mod1print(mod1.mod1_func1())print(mod1.mod1_func2())print(mod1.mod1_func2())
Ausgabe:
Welcome to Module1 function1NoneWelcome to Module1 function2NoneWelcome to Module1 function2None
Wir haben das Paket gerade mit einem einfachen Modul mit darin enthaltenen Funktionen demonstriert. Gemäß Ihrem Projekt können Sie auch mit Unterpaketen verpacken. Unterordner / mit Modulen mit definierten Klassen.
Python-Modul-Suchpfad
Wenn Python während der Ausführung auf den Namen des Importmoduls stößt , versucht der Interpreter, das Modul zu finden. Es durchsucht das Modul in der Liste der integrierten Module. Später werden die Verzeichnisse in sys.path definiert.
Zusammenfassend führt der Interpreter die folgende Suche durch, um das Modul zu finden:
- In Ihrem aktuellen Verzeichnis.
- In in der Liste der eingebauten Module
- In den Verzeichnissen sys.path
Sie können die Details von sys.path abrufen, indem Sie das sys-Modul importieren und den sys.path drucken. Sie erhalten die Liste der Verzeichnisse wie folgt:
importsysprint(sys.path)
Ausgabe:
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\Python37\\DLLs']
Sie können den Pfad auch ändern und die Verzeichnisse gemäß Ihren Anforderungen aufbewahren.
Modulalias beim Import verwenden
Sie können den Modulnamen auch in eine kürzere Form konvertieren, indem Sie ihm einen Aliasnamen geben. Der Alias kann mit dem Schlüsselwort erstellt werden.
Syntax:
import filename as alias name
Die Ordnerstruktur zum Testen des Codes lautet wie folgt:
Mod test/test.pydisplay.py
Es folgt der Code in test.py.
my_name = "Guru99"my_address = "Mumbai"def display_message():return "Welcome to Guru99 Tutorials!"def display_message1():return "All about Python!"
Verwenden Sie jetzt einen Alias für test.py in display.py
Import test as tprint(t.display_message())print(t.display_message1())print(t.my_name)print(t.my_address)
Der Alias, der für das Testmodul verwendet wird, ist t. So können die Funktion und Variablen aus test.py mit dem Alias t referenziert werden.
Ausgabe:
Welcome to Guru99 Tutorials!All about Python!Guru99Mumbai
Absolute und relative Importe in Python
Sie wissen jetzt, wie Sie eine Datei als Modul in eine andere Datei importieren. Lassen Sie uns nun sehen, wie die in Ordnern verfügbaren Dateien verwaltet werden. Die Dateien in den Ordnern können entweder durch absolute oder relative Importe importiert werden.
Stellen Sie sich vor, Sie haben Ihre Projektordnerstruktur wie unten gezeigt:
Der Stammordner ist mein Projekt /. Es hat zwei Unterordner package1 und package2.
Der Ordner package1 enthält zwei Module, module1.py und module2.py.
Der Ordner package2 hat eine Klasse myclass.py, ein Unterpaket subpkg mit module3.py und das letzte module4.py.
- In module1.py gibt es eine Funktion namens myfunc1.
- In module2.py gibt es eine Funktion namens myfunc2.
- In module3.py gibt es eine Funktion namens myfunc3.
- In module4.py gibt es eine Funktion namens myfunc4.
Absolute Importe verwenden
Für absolute Importe müssen Sie den gesamten Pfad Ihres Moduls direkt aus dem Projektstammordner hinzufügen.
Lassen Sie uns nun sehen, wie absolute Importe verwendet werden, um auf die Funktionen zu verweisen, die in jedem Modul vorhanden sind.
Um mit der Funktion myfunc1 zu arbeiten, müssen Sie Folgendes importieren:
from package1.module1 import myfunc1orfrom package1 import module1module1.myfunc1()
Um mit der Funktion myfunc3 arbeiten zu können, müssen Sie wie folgt importieren:
from package1.subpkg.module3 import myfunc3orfrom package1.subpkg import module3module3.myfunc3()
Vor- und Nachteile der Verwendung von absoluten Importen
Hier sind die Vorteile der Verwendung von absoluten Importen:
- Es wird einfach, die Module zur Codeprüfung zurückzuverfolgen.
- Einfach zu bedienen und sehr unkompliziert.
- Wenn das Projekt auf einen anderen Pfad verschoben wird, bleiben die Importe gleich.
Nachteile der Verwendung von absoluten Importen
Hier sind die Nachteile der Verwendung von absoluten Importen:
Nachteile:
- Der Importpfad kann sehr lang werden, wenn die Module verschachtelt sind und der Name der Module lang ist.
Relative Importe verwenden
In Anbetracht der unten erwähnten Ordnerstruktur werden wir sehen, wie dieselbe mithilfe relativer Importe importiert wird.
Beim relativen Import ist das zu importierende Modul relativ zum aktuellen Speicherort, an dem die Importanweisung vorhanden ist.
Syntax:
Bei relativen Importen müssen Sie beim Importieren mit von einen Punkt (.) Vor dem Modulnamen einfügen .
Es dauert 2 Perioden (…) vor dem Modulnamen, wenn sich das Modul in einer Ebene über dem aktuellen Standort befindet.
In Bezug auf die oben erwähnte Ordnerstruktur haben wir die folgenden Module mit ihrer Funktion, auf die wir verweisen müssen.
- In module1.py gibt es eine Funktion namens myfunc1.
- In module2.py gibt es eine Funktion namens myfunc2.
- In module3.py gibt es eine Funktion namens myfunc3.
- In module4.py gibt es eine Funktion namens myfunc4.
Um mit der Funktion myfunc1 arbeiten zu können, müssen Sie Folgendes importieren:
from .module1 import myfunc1
Um mit der Funktion myfunc3 arbeiten zu können, müssen Sie wie folgt importieren:
from .subpkg.module3 import myfunc3
Vorteile relativer Importe
Vorteile:
- Es ist einfach, mit relativen Importen zu arbeiten.
- Ab dem aktuellen Standort können die Importe im Vergleich zu absoluten Importen verkürzt werden.
Nachteile relativer Importe
Nachteile:
- Bei Verwendung relativer Importe ist es schwierig, den Speicherort des Codes zurückzuverfolgen
Zusammenfassung:
- Durch den Import in Python können Sie auf den Code verweisen, dh auf Funktionen / Objekte, die in eine andere Datei geschrieben wurden. Es wird auch verwendet, um Python-Bibliotheken / -Pakete zu importieren, die mit pip (Python-Paketmanager) installiert wurden, und Sie müssen sie dann in Ihrem Code verwenden.
- Die Importfunktion ist in anderen Sprachen wie Typoskript, JavaScript, Java, Ruby usw. verfügbar.
- Ein Modul ist Python ist der Code, der zum Beispiel in die Datei geschrieben wird (test.py). In Ihrer Datei können Sie Ihre Variablen, Funktionen oder Ihre Klasse definieren. Die gesamte Datei wird zu einem Modul und kann in eine andere Datei importiert werden, um auf den Code zu verweisen.
- Mit der Modulfunktionalität können Sie Ihren Code in verschiedene Dateien aufteilen, anstatt alles in eine Datei zu schreiben. Später können Sie mithilfe des Imports auf den Code in der gewünschten Datei verweisen.
- Python verfügt über integrierte Module, und auch externe Bibliotheken / Pakete, die mit einem Python-Paketmanager (pip) installiert wurden, z. B. Pandas, NumPy usw., werden als Module bezeichnet.
- Sie können nur einen kleinen Teil des Moduls importieren, dh nur die erforderlichen Funktionen und Variablennamen aus dem Modul, anstatt den vollständigen Code zu importieren.
- Sie können den Modulnamen auch in eine kürzere Form konvertieren, indem Sie ihm einen Aliasnamen geben. Der Alias kann mit dem Schlüsselwort erstellt werden.
- Ein Paket ist ein Verzeichnis, in dem alle Module definiert sind. Damit ein Python-Interpreter es als Paket behandelt, sollte Ihr Verzeichnis die Datei __init.pyfile enthalten. Die Datei init.py erstellt das Verzeichnis als Paket. Hier ist das Layout des Pakets, an dem wir arbeiten werden.
- Wenn Python während der Ausführung auf den Namen des Importmoduls stößt , versucht der Interpreter, das Modul zu finden. Es durchsucht das Modul in der Liste der integrierten Module. Später werden die Verzeichnisse in sys.path definiert.
- Für absolute Importe müssen Sie den gesamten Pfad Ihres Moduls direkt aus dem Projektstammordner hinzufügen.
- Beim relativen Import ist das zu importierende Modul relativ zum aktuellen Speicherort, an dem die Importanweisung vorhanden ist.