Direkt zum Hauptinhalt springen
eLearner.app
Modul 7 · Lektion 4 von 428/36 im Kurs~10 min
Lektionen des Moduls (4/4)

import und Module

Ein Modul in Python ist einfach eine .py-Datei. Um den Code eines Moduls in einer anderen Datei zu verwenden, importierst du es.

Import-Formen

Python
# 1) Import des gesamten Moduls
import math
math.sqrt(16)        # 4.0
math.pi              # 3.14159...

# 2) Import bestimmter Namen
from math import sqrt, pi
sqrt(16)             # jetzt direkt verfügbar
pi

# 3) Import mit Alias
import numpy as np      # idiomatische Konvention
from datetime import datetime as dt

# 4) "Star"-Import (nicht empfohlen)
from math import *      # verschmutzt den Namensraum, vermeiden

Wo Python nach Modulen sucht

Python sucht nach Modulen in sys.path. Dies umfasst:

  1. das Verzeichnis des ausgeführten Skripts,
  2. die Verzeichnisse in PYTHONPATH,
  3. die installierten Bibliotheken (site-packages).
Python
import sys
sys.path     # Liste von Verzeichnissen

Ein Modul erstellen

Erstelle mio_modulo.py:

Python
# mio_modulo.py
PI = 3.14159

def area_cerchio(r):
    return PI * r * r

Aus einer anderen Datei im selben Verzeichnis:

Python
import mio_modulo
mio_modulo.area_cerchio(5)   # 78.53975

from mio_modulo import area_cerchio, PI

if __name__ == "__main__":

Wenn ein Skript direkt ausgeführt wird, entspricht seine spezielle Variable __name__ dem Wert "__main__". Wenn dieselbe Datei als Modul importiert wird, entspricht __name__ dem Modulnamen.

Python
# strumento.py

def fai_qualcosa():
    print("lavoro!")

if __name__ == "__main__":
    # wird nur ausgeführt, wenn du `python strumento.py` aufrufst
    # wird NICHT ausgeführt, wenn jemand diese Datei importiert
    fai_qualcosa()

Dies ist das Standardmuster für Dateien, die sowohl als wiederverwendbares Modul als auch als ausführbares Skript dienen können.

Packages: Ordner von Modulen

Ein Verzeichnis, das eine Datei namens __init__.py (selbst eine leere) enthält, wird zu einem importierbaren Package (Paket):

Code
mio_pkg/
    __init__.py
    utenti.py
    pagamenti.py
Python
from mio_pkg import utenti
from mio_pkg.utenti import crea_utente

Probiere es aus

Übung#python.m7.l4.e1
Versuche: 0Wird geladen…

Importiere die Funktion `sqrt` aus dem Modul `math` (mit `from math import sqrt`), berechne dann die Quadratwurzel aus 144 und weise das Ergebnis `r` zu. Evaluiere `r`.

Editor wird geladen…
Hinweis anzeigen

from math import sqrt

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#python.m7.l4.e2
Versuche: 0Wird geladen…

Importiere das Modul `random` mit dem Alias `rnd` (`import random as rnd`), setze dann den Seed auf 42 mit rnd.seed(42) und evaluiere rnd.randint(1, 100).

Editor wird geladen…
Hinweis anzeigen

import random as rnd

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#python.m7.l4.e3
Versuche: 0Wird geladen…

Importiere die Funktionen `sin` und `cos` direkt aus dem Modul `math` unter Verwendung von `from ... import ...`. Berechne die Summe aus `sin(0)` und `cos(0)`, speichere sie in `trig_sum` und evaluiere sie.

Editor wird geladen…
Hinweis anzeigen

sin(0) ergibt 0.0, cos(0) ergibt 1.0. Die Summe ist 1.0. Verwende from math import sin, cos.

Lösung nach 3 Versuchen verfügbar