2. Unterrichtsblock
Python Module
Ein Modul ist nichts anderes, als eine separate Python-Datei mit einer Reihe von Funktionen, die man in die aktuelle Anwendung einbetten möchte. Module (Dateien) können auf dem eigenen Server, oder als sog. Bibliothek auf einem anderen Server liegen.
Bekannte Module/Bibliotheken:
- numPy
- openAI
- pyPlot
- math
- …
Erstellen eines Moduls
Um ein Modul zu erstellen, speichert man einfach den gewünschten Code in einer Datei mit der Dateierweiterung .py
def begruessung(name):
print("Hallo, " + name)
Aufgabe
Speichere o.g. Code in einer Datei mit dem Namen meinmodul.py
Die Datei meinmodul.py
muss im selben Verzeichnis liegen, wie die Datei, mit welcher wir das Modul später aufrufen möchten.
Verwenden eines Moduls
Nun können wir das gerade erstellte Modul verwenden, indem wir die import
Anweisung ausführen.
Importieren des Moduls mit dem Namen meinmodul
und Aufruf der Funktion begruessung
auf:
import meinmodul
meinmodul.begruessung("Maxi")
Hinweis: Wenn man eine Funktion aus einem Modul verwendet, verwendet man die Syntax: Modulname.Funktionsname .
Variablen im Modul
Das Modul kann, wie bereits beschrieben, Funktionen enthalten, aber auch Variablen aller Art (Arrays, Dictionaries, Objekte usw.):
Beispiel
Speichern eines Codes in der Datei meinmodul.py
person1 = {
"name": "Peter",
"alter": 26,
"stadt": "Rosenheim"
}
Beispiel
Importieren des Moduls mit dem Namen meinmodul
und Zugriff Sie auf das Dictionary person1:
import meinmodul
a = meinmodul.person1["alter"]
print(a)
Benennen eines Moduls
Man kann der Moduldatei einen beliebigen Namen geben, sie muss jedoch die Dateierweiterung .py
haben
Ein Modul umbenennen
Man kann beim Importieren eines Moduls einen Alias erstellen, indem man das as
Schlüsselwort verwendet:
Beispiel
Erstellen eines Alias für meinmodul
als mm
:
import meinmodul as mm
a = mm.person1["stadt"]
print(a)
Integrierte Module
Es gibt mehrere integrierte Module in Python, die man jederzeit importieren kann.
Beispiel
Importieren und verwenden des platform
Moduls:
import platform
x = platform.system()
print(x)
Aufgabe
Recherchiere die Verwendung und Funktionen des platform
Moduls
Verwenden der dir()-Funktion
Es gibt eine integrierte Funktion zum Auflisten aller Funktionsnamen (oder Variablennamen) in einem Modul. Die dir()
Funktion:
Beispiel
Auflisten aller definierten Namen, die zum Modul platform
gehören:
import platform
x = dir(platform)
print(x)
Hinweis: Die Funktion dir() kann auf allen Modulen verwendet werden , auch auf denen, die man selbst erstellt hat.
Aus Modulen importieren
Mithilfe des from
Schlüsselworts kann man festlegen, dass nur Teile aus einem Modul importiert werden sollen.
Beispiel
Das genannte Modul meinmodul
hat eine Funktion und ein Wörterbuch:
def gruss(name):
print("Servus, " + name)
person1 = {
"name": "Peter",
"alter": 26,
"stadt": "Rosenheim"
}
Beispiel
Importiere nur das Dictionary person1 aus dem Modul:
from meinmodul import person1
print (person1["stadt"])
Hinweis: Wenn man mit dem
from
Schlüsselwort importiert, verwendet man nicht den Modulnamen, wenn man auf Elemente im Modul verweist.
Beispiel:person1["stadt"]
Nicht:meinmodul.person1["stadt"]
Aufgabe
Baue die Aufgaben aus dem letzten Unterrichtsfach so um, dass Klassen in Modulen gespeichert werden und zur Ausführung in den Code importiert werden müssen.
Nutze dabei einmal den Import einer gesamten Klasse/Funktion und einmal die Integration über das from
Keyword.
Module aus einem Dateipfad importieren
Ziel der Lektion: Die Befähigung, Module oder spezifische Objekte aus Modulen zu importieren, die sich in Unterverzeichnissen eines Projekts befinden. Der Lerneffekt ist, wie wir Python dazu bringen können, untergeordnete Ordner zu erkennen und den Import korrekt durchzuführen.
Einführung in Module und Ordnerstruktur
In einem komplexen Python-Projekt ist es üblich, den Code in mehrere Module zu organisieren, die in verschiedenen Ordnern liegen. Dies hilft dabei, eine klare Struktur und Übersichtlichkeit zu bewahren.
Beispielhafte Projektstruktur:
mein_projekt/
├── unterrichtsblock_2.py
└── hilfsmittel/
└── mathe_operationen/
└── meinmodul.py
In diesem Aufbau möchten Sie eventuell Funktionen oder Variablen aus meinmodul.py
in unterrichtsblock_2.py
importieren.
Vorbereitung: Definieren eines Dictionaries in einem Modul
Erstellen der Datei meinmodul.py
im Ordner mathe_operationen
:
# Inhalt von meinmodul.py
def addiere(x, y):
return x + y
def subtrahiere(x, y):
return x - y
operationen_dict = {
'addition': addiere,
'subtraktion': subtrahiere
}
Methode zum Importieren von Modulen aus tieferliegenden Ordnern
Schritt 1: Pfad verstehen und anpassen
Python verwendet eine Liste namens sys.path
, um Orte zu kennen, an denen nach Modulen gesucht wird. Um ein Modul aus einem tieferliegenden Ordner aufzurufen, muss der Pfad angepasst werden.
Schritt 2: unterrichtsblock_2.py
vorbereiten
Code zum Importieren eines Moduls mit einem angepassten Pfad:
# unterrichtsblock_2.py
import sys
import os
# Fügt den Pfad zum Ordner 'mathe_operationen' hinzu
mathe_operationen_pfad = os.path.join(os.path.dirname(__file__), 'hilfsmittel', 'mathe_operationen')
if mathe_operationen_pfad not in sys.path:
sys.path.append(mathe_operationen_pfad)
# Importieren des Dictionaries aus meinmodul.py
from meinmodul import operationen_dict
# Verwendung des Dictionaries
ergebnis1 = operationen_dict['addition'](5, 3)
ergebnis2 = operationen_dict['subtraktion'](10, 4)
print("Addition:", ergebnis1) # Ausgabe: Addition: 8
print("Subtraktion:", ergebnis2) # Ausgabe: Subtraktion: 6
Erklärung des Codes:
os.path.join
: Baut den Pfad korrekt für das Betriebssystem auf, auf dem das Skript läuft.sys.path.append
: Fügt den erstellten Pfad zusys.path
hinzu, sodass Python weiß, wo es das Modulmeinmodul
finden kann.- Import: Sobald der Pfad gesetzt ist, können wir das Modul oder spezifische Objekte daraus importieren, wie z.B. das Dictionary
operationen_dict
.
Aufgabe
Aufgabe 1: Ändere die Struktur des Projekts, indem Du eine weitere Ebene von Ordnern hinzufügst, wie beispielsweise fortgeschritten/
direkt unter mathe_operationen/
, und verschiebe die meinmodul.py
dorthin. Passe unterrichtsblock_2.py
entsprechend an und führe das gleiche Importverfahren durch.
Aufgabe 2: Füge eine zusätzliche Funktion zu meinmodul.py
hinzu, die Multiplikation ausführt. Importiere diese Funktion in unterrichtsblock_2.py
und nutze sie dort.
Übungsaufgaben
- Bibliothek importieren und verwenden:
- Importiere die
math
Bibliothek und berechne den Winkel in Radiant für 45 Grad mit der Funktionmath.radians()
.
- Importiere die
- Importiere bestimmte Funktionen aus einer Bibliothek:
- Importiere die Funktion
sqrt
aus demmath
Modul und berechne die Wurzel aus 64.
- Importiere die Funktion
- Bibliothek unter einem Alias importieren:
- Importiere das
datetime
Modul unter dem Aliasdt
und gib das aktuelle Datum und die aktuelle Uhrzeit aus.
- Importiere das
- Erstelle ein eigenes Modul und importiere es:
- Erstelle eine Datei namens
gruss.py
mit einer Funktionsage_hallo()
, die eine Begrüßung ausgibt. Importiere dieses Modul in einem anderen Script und rufe die Funktionsage_hallo()
auf.
- Erstelle eine Datei namens
- Auslagern und Importieren einer Klasse:
- Erstelle eine Datei namens
auto.py
und definiere darin eine KlasseAuto
mit einer Methodehupe()
, die „Hup! Hup!“ ausgibt. Importiere die KlasseAuto
in einem anderen Script und erstelle eine Instanz vonAuto
, dann rufe die Methodehupe()
auf.
- Erstelle eine Datei namens