Module¶
Ein Vorteil von Funktionen besteht darin, dass Sie damit Codeblöcke aus dem Hauptprogramm auslagern können.
Sie können sogar noch einen Schritt weitergehen und Funktionen in einer eigenen Datei speichern, einem sogenannten Modul, das Sie dann in das Hauptprogramm importieren.
Die Anweisung import weist Python an, Code aus einem Modul in dem zurzeit ausgeführten Programm zur Verfügung zu stellen.
Wir erstellen eine neue Datei: pizza.py
def make_pizza(size, *toppings):
"""Summarize the pizza we are about to make."""
print(f"\nMaking a {size}-inch pizza with the following toppings:")
for topping in toppings:
print(f"- {topping}")
Dann eine neue Datei: making_pizzas.py
import pizza
pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
Die Zeile import pizza weist Python an, die Datei pizza.py zu öffnen und alle darin enthaltenen Funktionen in das laufende Programm zu kopieren. Bei dieser ersten Importvariante, bei der Sie einfach import gefolgt vom Namen des Moduls schreiben, stehen anschließend alle Funktionen des Moduls in Ihrem Programm zur Verfügung. Auf die einzelnen Funktionen können Sie dann mit derfolgenden Syntax zugreifen:
modulname.funktionsname()
Allerdings stehen alle in pizza.py definierten Funktionen jetzt in making_pizzas.py zur Verfügung.
Um eine Funktion aus einem importierten Modul aufzurufen, müssen Sie den Namen des Moduls gefolgt von einem Punkt und dem Namen der Funktion angeben,
hier also:
pizza.make_pizza()
Einzelne Funktionen importieren¶
Mit der folgenden Syntax können Sie auch einzelne Funktionen aus einem Modul importieren:
from modulname import funktionsname
Dabei können Sie beliebig viele Funktionen aus einem Modul importieren, indem Sie die einzelnen Namen einfach durch Kommata trennen:
from modulname import funktion_0, funktion_1, funktion_2
Wenn wir nur die tatsächlich verwendete Funktion importieren, sieht unser Beispielprogramm making_pizzas.py wie folgt aus:
from pizza import make_pizza
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
Bei dieser Vorgehensweise brauchen Sie später beim Aufruf der Funktion die Punktschreibweise nicht zu verwenden. Da wir die Funktion make_pizza() in der import-Anweisung schon ausdrücklich importiert haben, können wir sie einfach mit ihrem Namen aufrufen.
Eine Funktion umbenennen¶
Wenn der Name einer importierten Funktion in Konflikt mit einem bereits in dem Programm vorhandenen Namen steht – oder wenn er Ihnen einfach zu lang ist –, können Sie einen kurzen, eindeutigen Alias vergeben.
Die Syntax zur Angabe eines Alias lautet wie folgt:
from modulname import funktionsname as alias
Im folgenden Beispiel legen wir für die Funktion make_pizza() den Alias mp() fest, indem wir beim Import das Schlüsselwort as verwenden:
from pizza import make_pizza as mp
mp(16, 'pepperoni')
mp(12, 'mushrooms', 'green peppers', 'extra cheese')
Ein Modul mit as umbenennen¶
Sie können auch für einen Modulnamen einen Alias angeben. Ein kurzer Alias wie p für pizza ermöglicht einen rascheren Zugriff auf die Funktionen des Moduls.
Die Syntax für diese Vorgehensweise lautet:
import modulname as alias
Ein Aufruf wie p.make_pizza() ist kompakter als pizza.make_pizza().
import pizza as p
p.make_pizza(16, 'pepperoni')
p.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
Alle Funktionen eines Moduls importieren¶
Mit dem Sternoperator können Sie sämtliche Funktionen aus einem Modul importieren:
from pizza import *
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')