Was sind Module ?
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
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:
- 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()
https://realpython.com/run-python-scripts/?utm_source=notification_summary&utm_medium=email&utm_campaign=2023-10-24
Was ist in einem Modul drin ?
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
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
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
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!
Navigation
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