Modul importieren in Python mit Beispielen

Was sind die Module in Python?

Ein Modul ist eine Datei mit Python-Code. Der Code kann in Form von Variablen, Funktionen oder definierten Klassen vorliegen. 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.

Herausforderungen in der Python Modul importieren?

Eine Datei wird in Python als Modul betrachtet. Um das Modul nutzen zu kรถnnen, mรผssen Sie es mit importieren der Import Schlรผsselwort. 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 verfรผgbar, wie z. B. Typescript, JavaSkript, Java, Ruby usw.

So erstellen und importieren Sie 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:

Erstellen und Importieren eines Moduls in Python

Befolgen Sie die angegebenen Schritte, um ein Modul in Python zu erstellen.

Die zum Testen des Codes verwendete Ordnerstruktur ist wie folgt:

modtest/
	test.py
	display.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 unten gezeigt:

import test

Beim Importieren mรผssen Sie nicht test.py angeben, sondern nur den Namen der Datei.

Schritt 5) Dann 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 test
print(test.display_message())

Schritt 6) Wenn Sie display.py ausfรผhren, erhalten Sie Folgendes Ausgang:

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 auf die Klasse in einer anderen Datei verwiesen.

Die Ordnerstruktur zum Testen des Codes ist wie folgt:

myproj/
	Car.py
	display.py

Erstellen Sie eine Datei namens 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_name
		self.model = model
		self.manu_year = manu_year

	def 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 in der Klasse definierten Funktionen sind car_details(), get_Car_brand(), get_Car_model().

Lassen Sie uns nun die Datei Car.py als Modul in einer anderen Datei namens display.py verwenden.

Dateiname: display.py

import Car
car_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())

Ausgang:

BMW
Car brand is  BMW
Car model is  Z5
Car manufacture year is  2020
Car brand is  BMW
Car model is  Z5

So kรถnnen wir รผber das Car-Modul auf alle Variablen und Funktionen von Car.py zugreifen.

Verwenden des From-to-Importmoduls

Sie kรถnnen nur einen kleinen Teil des Moduls importieren, dh nur die erforderlichen Funktionen und Variablennamen aus dem Modul, anstatt den gesamten Code zu importieren.

Wenn Sie nur bestimmte Dinge importieren mรถchten, kรถnnen Sie das Schlรผsselwort โ€žfromโ€œ verwenden, um die gewรผnschten Elemente zu importieren.

Die Syntax ist also

from  module import your function_name , variables,... etc.

Die zum Testen des Codes verwendete Ordnerstruktur ist wie folgt:

modtest/
	test.py
	display.py	

In test.py gibt es zwei 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_message
print(display_message())

Ausgang:

Welcome to Guru99 Tutorials!

Wenn Sie nun die Funktion display_message1() verwenden, wird eine Fehlermeldung ausgegeben, dass die Funktion nicht wie unten gezeigt definiert ist:

from test import display_message
print(display_message1())

Ausgang:

Traceback (most recent call last):
File "display.py", line 3, in <module>
print(display_message1())
Name Error: name 'display_message1' is not defined

Alles aus dem Modul importieren

Mit Import kรถnnen Sie das vollstรคndige Modul importieren, indem Sie import gefolgt vom Modulnamen verwenden, z. B. dem Dateinamen oder der zu verwendenden Bibliothek.

Syntax:

Import module

Oder mit

from module import *

Die zum Testen des Codes verwendete Ordnerstruktur ist wie folgt:

modtest/
	test.py
	display.py	

Nachfolgend sind die Codedetails in test.py aufgefรผhrt.

my_name = "Guru99"
my_address = "Mumbai"

defdisplay_message():
	return "Welcome to Guru99 Tutorials!"
	
	
def display_message1():
	return "All about Python!"

Verwendung des Importmoduls

Wenn Sie nur den Modulnamen importieren, um auf die Variablen und Funktionen innerhalb des Moduls zu verweisen, muss ihm der Modulname vorangestellt werden.

Beispiel

Dateiname: display.py

Import test
print(test.display_message())
print(test.display_message1())
print(test.my_name)
print(test.my_address)

Der Modulname test wird verwendet, um auf die Funktion und Variablen innerhalb des Modultests zu verweisen.

Ausgang:

Welcome to Guru99 Tutorials!
All about Python!
Guru99
Mumbai

Import verwenden *

Sehen wir uns ein Beispiel mit an importieren *. Mit importieren *, sind die Funktionen und Variablen direkt zugรคnglich, wie im folgenden Beispiel gezeigt:

from test import *

print(display_message())
print(display_message1())
print(my_name)
print(my_address)

Ausgang:

Welcome to Guru99 Tutorials!
All about Python!
Guru99
Mumbai

Die dir( )-Funktion

Dir() ist eine integrierte Funktion in Python. 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 funktionierendes Beispiel von dir() auf 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 sieht wie folgt aus:

test prop/
	Car.py
	test.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_name
		self.model = model
		self.manu_year = manu_year

	def 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 Car

class_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() auf einem integrierten Modul zu verwenden, das verfรผgbar ist in PythonVersuchen wir das Gleiche auf JSON Modul wie im Beispiel unten gezeigt. Es werden alle verfรผgbaren Eigenschaften und Methoden angezeigt JSON Modul.

Import json
json_details = dir(json)
print(json_details)

Ausgang:

['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__bu
iltins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__pac
kage__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_en
coder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'loa
d', 'loads', 'scanner']

Pakete

Ein Paket ist ein Verzeichnis, in dem alle Module definiert sind. Um ein Python Der Interpreter behandelt es als Paket. Ihr Verzeichnis sollte die Datei init.py enthalten. init.py erstellt das Verzeichnis als Paket. Hier ist das Layout des Pakets, an dem wir arbeiten werden.

Pakete in Python

Der Name des Pakets ist mein Paket. Um mit dem Paket zu arbeiten, erstellen Sie ein Verzeichnis namens package/. Erstellen Sie innerhalb des Verzeichnisses eine leere Datei namens __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")

Die PaketEs ist einsatzbereit. Rufen Sie nun das Paket in einer Ihrer Dateien auf, wie unten gezeigt:test.py:

Hier wird mypackage.module1 importiert und mit einem Aliasnamen versehen mod1. Ebenso kรถnnen Sie die anderen Module module2.py und module3.py aus meinem Paket verwenden.

import mypackage.module1 as mod1

print(mod1.mod1_func1())
print(mod1.mod1_func2())
print(mod1.mod1_func2())

Ausgang:

Welcome to Module1 function1
None
Welcome to Module1 function2
None
Welcome to Module1 function2
None

Wir haben das Paket gerade mit einem einfachen Modul mit darin enthaltenen Funktionen demonstriert. Je nach Projekt kรถnnen Sie auch Pakete mit Unterpaketen erstellen. Unterordner/mit Modulen mit definierten Klassen.

Python Modulsuchpfad

Wรคhrend der Ausfรผhrung, wenn Python auftaucht Name des Importmoduls, versucht der Interpreter, das Modul zu finden. Es durchsucht das Modul in der Liste der integrierten Module. Later Insgesamt sind die in sys.path definierten Verzeichnisse.

Zusammenfassend fรผhrt der Interpreter die folgende Suche durch, um das Modul zu finden:

  1. In Ihrem aktuellen Verzeichnis.
  2. In der Liste der eingebauten Module
  3. Innerhalb der sys.path-Verzeichnisse

Sie kรถnnen die Details von sys.path abrufen, indem Sie das sys-Modul importieren und sys.path ausdrucken. Sie erhalten die folgende Verzeichnisliste:

importsys
print(sys.path)

Ausgang:

['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\
\Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P
ython37\\DLLs']

Sie kรถnnen auch den Pfad รคndern und die Verzeichnisse Ihren Anforderungen entsprechend beibehalten.

Modulalias beim Import verwenden

Sie kรถnnen den Modulnamen auch in eine kรผrzere Form umwandeln, indem Sie ihm einen Aliasnamen geben. Der Alias โ€‹โ€‹kann รผber das Schlรผsselwort erfolgen.

Syntax:

import filename as alias name

Die Ordnerstruktur zum Testen des Codes sieht wie folgt aus:

Mod test/
	test.py
	display.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!"

Jetzt wird ein Alias โ€‹โ€‹fรผr test.py in display.py verwendet

Import test as t

print(t.display_message())
print(t.display_message1())
print(t.my_name)
print(t.my_address)

Der fรผr das Testmodul verwendete Alias โ€‹โ€‹ist t . Daher kรถnnen die Funktion und Variablen von test.py mit dem Alias โ€‹โ€‹t referenziert werden.

Ausgang:

Welcome to Guru99 Tutorials!
All about Python!
Guru99
Mumbai

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 Sie die in Ordnern verfรผgbaren Dateien verwalten. Die Dateien in den Ordnern kรถnnen entweder durch absolute oder relative Importe importiert werden.

Stellen Sie sich vor, Sie haben die Struktur Ihres Projektordners wie unten dargestellt:

Absolute und relative Importe in Python

Der Stammordner ist mein Projekt/. Es gibt 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 zuletzt 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.

Verwendung absoluter Importe

Fรผr absolute Importe mรผssen Sie den gesamten Pfad Ihres Moduls direkt aus dem Projektstammordner hinzufรผgen.

Sehen wir uns nun an, wie man absolute Importe nutzt, um auf die in jedem Modul vorhandenen Funktionen zu verweisen.

Um mit der Funktion myfunc1 zu arbeiten, mรผssen Sie wie folgt importieren:

from package1.module1  import  myfunc1
or
from package1 import module1
module1.myfunc1()  

Um mit der Funktion myfunc3 arbeiten zu kรถnnen, mรผssen Sie Folgendes importieren:

from package1.subpkg.module3  import  myfunc3
or
from package1.subpkg import module3
module3.myfunc3()  

Vor- und Nachteile der Verwendung absoluter Importe

Hier sind die Vorteile der Verwendung absoluter Importe:

  • Es wird einfacher, die Module zur Codeprรผfung zurรผckzuverfolgen.
  • Einfach zu bedienen und sehr unkompliziert.
  • Wenn das Projekt in einen anderen Pfad verschoben wird, bleiben die Importe dennoch gleich.

Nachteile der Verwendung absoluter Importe

Hier sind die Nachteile der Verwendung absoluter Importe:

Nachteile:

  • Der Importpfad kann sehr lang werden, wenn die Module verschachtelt sind und der Name der Module lang ist.

Verwendung relativer Importe

Unter Berรผcksichtigung der unten erwรคhnten Ordnerstruktur werden wir sehen, wie diese mithilfe relativer Importe importiert wird.

Beim relativen Import ist das zu importierende Modul relativ zum aktuellen Speicherort, also dem Speicherort, an dem sich die Importanweisung befindet.

Syntax

Bei relativen Importen mรผssen Sie beim Importieren mit einen Punkt (.) vor dem Modulnamen hinzufรผgen ab.

Es werden 2 Punkte (..) vor dem Modulnamen angezeigt, wenn sich das Modul eine Ebene hรถher als der aktuelle Standort befindet.

In Bezug auf die oben erwรคhnte Abbildung der Ordnerstruktur haben wir die folgenden Module mit ihren Funktionen, auf die wir uns beziehen 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 zu arbeiten, mรผssen Sie wie folgt importieren:

from  .subpkg.module3  import  myfunc3

Vorteile relativer Importe

Vorteile:

  • Es ist einfach, mit relativen Importen zu arbeiten.
  • Vom aktuellen Standort aus kรถnnen die Importe im Vergleich zu absoluten Importen verkรผrzt werden.

Nachteile relativer Importe

Nachteile:

  • Bei Verwendung relativer Importe ist es schwierig, zurรผckzuverfolgen, wo sich der Code befindet

Zusammenfassung

  • Importieren in Python hilft Ihnen, auf den Code zu verweisen, d. h. auf Funktionen/Objekte, die in einer anderen Datei geschrieben sind. Es wird auch verwendet, um Python-Bibliotheken/-Pakete zu importieren, die mit pip (Python-Paketmanager) installiert wurden und die Sie dann in Ihrem Code verwenden mรผssen.
  • Die Importfunktion ist auch in anderen Sprachen verfรผgbar, wie etwa Typescript, JavaSkript, Java, Ruby usw.
  • Ein Modul ist Python, der in die Datei geschriebene Code, zum Beispiel (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. LaterMithilfe von Import kรถnnen Sie auf den Code in der benรถtigten Datei verweisen.
  • Python hat seine eingebauten Module und auch externe Bibliotheken/Pakete installiert mit einem Python-Paketmanager (pip), 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 gesamten Code zu importieren.
  • Sie kรถnnen den Modulnamen auch in eine kรผrzere Form umwandeln, indem Sie ihm einen Aliasnamen geben. Der Alias โ€‹โ€‹kann รผber das Schlรผsselwort erfolgen.
  • Ein Paket ist ein Verzeichnis, in dem alle Module definiert sind. Um ein Python Der Interpreter behandelt es als Paket. Ihr Verzeichnis sollte die Datei __init.py enthalten. Init.py erstellt das Verzeichnis als Paket. Hier ist das Layout des Pakets, an dem wir arbeiten werden.
  • Wรคhrend der Ausfรผhrung, wenn Python auftaucht Name des Importmoduls, versucht der Interpreter, das Modul zu finden. Es durchsucht das Modul in der Liste der integrierten Module. Later Insgesamt sind die in sys.path definierten Verzeichnisse.
  • 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, also dem Speicherort, an dem sich die Importanweisung befindet.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: