Python Modules

Table of Contents

In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Module in Python erstellen und importieren. Außerdem finden Sie verschiedene Techniken zum Importieren und Verwenden von benutzerdefinierten und integrierten Modulen in Python.

 

Was sind Module in Python?

Module beziehen sich auf eine Datei, die Python-Anweisungen und Definitionen enthält.

Eine Datei mit Python Code, zum Beispiel: example.py, heißt ein Modul, und sein Modulname wäre example.

Wir verwenden Module, um große Programme in kleine überschaubare und organisierte Dateien zu zerlegen. Außerdem ermöglichen Module die Wiederverwendbarkeit von Code.

Wir können unsere am häufigsten verwendeten Funktionen in einem Modul definieren und es importieren, anstatt ihre Definitionen in verschiedene Programme zu kopieren.

 

Lassen Sie uns ein Modul erstellen. Geben Sie Folgendes ein und speichern Sie es als example.py.

# Python Module Beispiel

def add(a, b):
   """Dieses Programm fügt zwei hinzu
   Zahlen und das Ergebnis zurückgeben"""

   result = a + b
   return result

 

Hier haben wir eine Funktion  definiert add() innerhalb eines Moduls namens example. Die Funktion nimmt zwei Zahlen auf und gibt deren Summe zurück.

 


 

Wie importiert man Module in Python?

 

Wir können die Definitionen innerhalb eines Moduls in ein anderes Modul oder den interaktiven Interpreter in Python importieren.

Dazu verwenden wir das import Schlüsselwort. Um unser zuvor definiertes Modul zu importieren example, Wir geben Folgendes in die Python Eingabeaufforderung ein.

>>> import example

 

Dies importiert nicht die Namen der in definierten Funktionen example direkt in der aktuellen Symboltabelle.Es importiert nur den Modulnamen example dort.

Über den Modulnamen können wir mit dem Punkt auf die Funktion zugreifen. Operator. Beispielsweise:

>>> example.add(3,4.5)
7.5

 

Python hat Tonnen von Standardmodulen. Sie können die vollständige Liste der Python standard modules und ihre Anwendungsfälle. Diese Dateien befinden sich im Lib-Verzeichnis an dem Ort, an dem Sie Python installiert haben.

Standardmodule können auf die gleiche Weise importiert werden, wie wir unsere benutzerdefinierten Module importieren.

Es gibt verschiedene Möglichkeiten, Module zu importieren. Sie sind unten aufgeführt..


 

Python import anweisung

 

Wir können ein Modul importieren mit dem import anweisung und greifen Sie mit dem Punktoperator wie oben beschrieben auf die darin enthaltenen Definitionen zu. Hier ist ein Beispiel.

 

#  Beispiel für eine Import Anweisung
# um das Standardmodul Mathe zu importieren

import math
print("Der Wert von pi ist", math.pi)

 

Wenn Sie das Programm ausführen, lautet die Ausgabe:

Der Wert von pi ist 3.141592653589793

 


 

Importieren mit Umbenennung

 

Wir können ein Modul importieren, indem wir es wie folgt umbenennen:

# Modul importieren durch Umbenennen

import math as m
print("Der Wert von pi ist", m.pi)

 

Wir haben die umbenannt math Modul als m. Dies kann uns in einigen Fällen Schreibzeit sparen.

Beachten Sie, dass der Namemathwird in unserem Geltungsbereich nicht anerkannt. Daher, math.pi ist ungültig, und m.pi ist die richtige Umsetzung.

 


 

Python from…import anweisung

 

Wir können bestimmte Namen aus einem Modul importieren, ohne das Modul als Ganzes zu importieren. Hier ist ein Beispiel.

 

# importiere nur pi aus dem mathemodul

from math import pi
print("Der Wert von pi ist", pi)

 

Hier haben wir nur die importierten pi Attribut aus dem math Modul.

In solchen Fällen verwenden wir den Punktoperator nicht. Wir können auch mehrere Attribute wie folgt importieren:

>>> from math import pi, e
>>> pi
3.141592653589793
>>> e
2.718281828459045

 


 

 

Alle Namen importieren

Wir können alle Namen (Definitionen) aus einem Modul mit dem folgenden Konstrukt importieren:

# alle Namen aus dem Standardmodul Mathe importieren

from math import *
print("Der Wert von pi ist", pi)

 

Hier haben wir alle Definitionen aus dem Mathematikmodul importiert. Dies schließt alle in unserem Geltungsbereich sichtbaren Namen ein, außer denen, die mit einem Unterstrich beginnen (private Definitionen).

Alles mit dem Sternchen (*) zu importieren ist keine gute Programmierpraxis. Dies kann zu doppelten Definitionen für einen Bezeichner führen. Es behindert auch die Lesbarkeit unseres Codes.

 


 

Python Module Suchpfad

 

Beim Importieren eines Moduls betrachtet Python mehrere Stellen. Interpreter sucht zuerst nach einem eingebauten Modul. Dann (wenn das eingebaute Modul nicht gefunden wurde), schaut Python in eine Liste von Verzeichnissen, die in definiert sind sys.path. TDie Suche erfolgt in dieser Reihenfolge

 

  • Das aktuelle Verzeichnis.
  • PYTHONPATH (eine Umgebungsvariable mit einer Liste von Verzeichnissen).
  • Das installationsabhängige Standardverzeichnis.

 

>>> import sys
>>> sys.path
['',
'C:\\Python33\\Lib\\idlelib',
'C:\\Windows\\system32\\python33.zip',
'C:\\Python33\\DLLs',
'C:\\Python33\\lib',
'C:\\Python33',
'C:\\Python33\\lib\\site-packages']

 

Wir können diese Liste hinzufügen und ändern, um unseren eigenen Pfad hinzuzufügen.

 


 

Reloading en module

 

Der Python-Interpreter importiert ein Modul nur einmal während einer Sitzung. Das macht die Sache effizienter. Hier ist ein Beispiel, um zu zeigen, wie das funktioniert.

 

Angenommen, wir haben den folgenden Code in einem Modul namens my_module.

# Dieses Modul zeigt die Wirkung von
# mehrfach importieren und neu laden

print("Dieser Code wurde ausgeführt")

 

Jetzt sehen wir den Effekt mehrerer Importe.

>>> import my_module
Dieser Code wurde ausgeführt
>>> import my_module
>>> import my_module

 

Wir können sehen, dass unser Code nur einmal ausgeführt wurde. Dies bedeutet, dass unser Modul nur einmal importiert wurde.

Sollte sich nun unser Modul im Laufe des Programms ändern, müssten wir es neu laden. Eine Möglichkeit hierfür besteht darin, den Interpreter neu zu starten. Aber das hilft nicht viel.

 

Python bietet hierfür eine effizientere Möglichkeit. Wir können die nutzen reload() Funktion innerhalb der imp Modul, um ein Modul neu zu laden. Wir können es auf folgende Weise tun:

>>> import imp
>>> import my_module
Dieser Code wurde ausgeführt
>>> import my_module
>>> imp.reload(my_module)
Dieser Code wurde ausgeführt
<module 'my_module' from '.\\my_module.py'>

 

 


 

 

Die eingebaute Funktion dir()

 

Wir können die nutzen dir() Funktion, um Namen herauszufinden, die innerhalb eines Moduls definiert sind.

 

Zum Beispiel haben wir eine Funktion definiert add() im Modul example die wir am Anfang hatten.

Wir können benutzen dir im example Modul wie folgt:

>>> dir(example)
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__initializing__',
'__loader__',
'__name__',
'__package__',
'add']

 

 

Hier sehen wir eine sortierte Liste mit Namen (zusammen mit add).Alle anderen Namen, die mit einem Unterstrich beginnen, sind standardmäßige Python-Attribute, die dem Modul zugeordnet sind (nicht benutzerdefiniert).

 

Zum Beispiel die __name__ attribut enthält den Namen des Moduls.

>>> import example
>>> example.__name__
'example'

 

Alle Namen, die in unserem aktuellen Namensraum definiert sind, können mit dem dir() Funktion ohne Argumente.

>>> a = 1
>>> b = "hallo"
>>> import math
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter']