11. Lektion: Module
Was sind Module ?[Bearbeiten | Quelltext bearbeiten]
Module sind Sammlungen von Funktionen, die in einer Datei zusammen gefasst sind.
In anderen Programmiersprachen werden sie Bibliotheken genannt.
Bibliotheken sind in Phython die Zusammenfassung mehrerer Module
Ausführlichere Informationen gibt es hier (english):
https://martinxpn.medium.com/how-modules-actually-work-in-python-and-how-to-create-your-own-custom-module-81-100-days-of-d1a84fead104
Module benutzen[Bearbeiten | Quelltext bearbeiten]
Module müssen importiert werden bevor man die Funktionen daraus nutzen kann.
Üblicherweise sollen die Importanweisungen am Anfang des Scriptes stehen.
Es gibt 4 Möglichkeiten Module zu importieren:[Bearbeiten | Quelltext bearbeiten]
- Einfacher Import
import modulname
- importiert alles aus dem Modul. Die importierten Funktionen bleiben im Namespace des Moduls.
- Anwendung
modulname.funktionsname()
- Einfacher Import mit Aliasnamen
import modulname as aliasname
- importiert alles aus dem Modul. Das Modul erhält den Aliasnamen. Die importierten Funktionen bleiben im Namespace des Moduls (Aliasnamen).
- Beispiel
import network as net
- Anwendung
aliasname.funktionsname()
- Import in den Hauptnamespace
from modulname import *
- importiert das angegebenen Modul in den Namensraum des Hauptprogramms.
- * bedeutet, es wird alles importiert.
- Dieser Aufruf sollte vermieden werden, weil es zu Namenskonflikten kommen kann.
- Man sollte sehr genau wissen was man tut!
- Stattdessen soll der gewünschte Funktionname oder mehrere, durch Komma getrennte Funktionsnamen benutzt werden.
- Beispiel
from os import mktime, sleep
- Das spart auch noch Speicherplatz, weil nicht Alles aus dem Modul geladen wird.
- Anwendung
funktionsname()
- Import in den Hauptnamespace mit Aliasnamen
from modulname import funktion as aliasname_der_funktion
- importiert die Funktion unter dem Aliasnamen.
- Beispiel
from os import sleep as wait
- Anwendung
aliasname_der_funktion()
Was ist in einem Modul drin ?[Bearbeiten | Quelltext bearbeiten]
dir(modulname)
zeigt den Inhalt eines Moduls an.
>>> dir(time) ['__class__', '__name__', 'localtime', 'mktime', 'sleep', 'sleep_ms', 'sleep_us', 'ticks_add', 'ticks_cpu', 'ticks_diff', 'ticks_ms', 'ticks_us', 'time']
Module selber schreiben[Bearbeiten | Quelltext bearbeiten]
Es ist Python ganz einfach Module selbst zu schreiben. Es unterscheidet sich nicht vom Schreiben von Scripts. Allerdings dürfen Module auch nur Funktionen enthalten. Es können also auch bestehende Scripts importiert und die darin enthaltenen Funktionen genutzt werden.
__name__ magic[Bearbeiten | Quelltext bearbeiten]
Beim importieren von Scripten wird darin enthaltener Programmcode ausgeführt. Das lässt sich aber verhindern.
Jedes Script enthält einige magische Variablen, die von Python erzeugt und beschrieben werden. Das sind bei dir() die mit den doppelten Unterstrichen am Anfang und am Ende.
Die magische Variable __name__ enthält beim Import des Scripts als Modul den Dateinamen.
Wenn das Script aber als Hauptprogramm gestartet wird, steht "__main__" darin.
if __name__ == '__main__': main()
Mit dieser Abfrage kann erreicht werden, das main() nur ausgeführt wird, wenn das Script ais Hauptprogramm gestartet wird.
Das Hauptprogramm ist dann in der Funktion main() definiert.
Module mit mip laden[Bearbeiten | Quelltext bearbeiten]
In Python kann man mit pip ganz einfach Module herunterladen und installieren. So etwas gab es bisher für Micropython nicht. Seit neuestem gibt es dazu mip. Ich habe damit noch keine Erfahrungen machen können.
Der erste Link zeigen auf die entsprechende Information dazu in den Micropython Docs. Der Zweite auf die dazugehörige Modulsammlung.
Diese Info steht hier für Leute die es ausprobieren möchten.
Bei Erfolg bitte im Elektronik Stammtisch darüber berichten!
[Bearbeiten | Quelltext bearbeiten]
Zurück zu Micropython Kurs 2023 - Teil 1
Zurück zur "Micropython Kurs 2023" Startseite
Zurück zur Programmieren Startseite
Zurück zur Wiki Startseite