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 Namemath
wird 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']