11. Lektion: Module

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche

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

Diese Seite wurde zuletzt am 25. Oktober 2023 um 09:43 Uhr geändert. Diese Seite wurde bisher 2.096 mal abgerufen.