i

Exkurs - Modularisierung in Python

Module

Um eine Klassendeklaration zu einem Modul zu machen, muss sie in einer Datei abgespeichert werden. Sie kann dann von anderen Programmen benutzt werden, sofern sie in das entsprechende Skript importiert wird.

from [Modul] import [Name]

Wenn beispielsweise die Deklaration der Klassen Kartenstapel und Kartenhaufen in der Datei kartenspiel.py abgespeichert ist, dann können diese Klassen als Baustein weiter genutzt werden, z. B. so:

from kartenspiel import Kartenstapel, Kartenhaufen
# Testprogramm
kartenstapel = Kartenstapel()
kartenstapel.mischen()
meinKartenhaufen = Kartenhaufen()
while meinKartenhaufen.getWert() < 18:
    karte = kartenstapel.karteZiehen()
    meinKartenhaufen.hinzufuegen(karte)
print(meinKartenhaufen.getKartenListe())
print(meinKartenhaufen.getWert())

Mit Hilfe der Importanweisung from kartenspiel import Kartenstapel, Kartenhaufen werden die Klassen Kartenstapel und Kartenhaufen aus der Datei kartenspiel.py importiert (genauer: es werden der Name der Klassen in den aktuellen Namensraum übernommen).

from [Modul] import *

Enthält ein Modul mehrere Deklarationen, so können alle deklarierten Namen mit der Importanweisung from kartenspiel import * importiert werden:

# Baustein importieren
from kartenspiel import *
# Objekte erzeugen und verwenden
...

import [Modul]

Schließlich ist es möglich, ein Modul mit der Importanweisung import kartenspiel zu importieren. In diesem Fall muss man beim Aufruf eines im Modul deklarierten Namens den Modulnamen noch zusätzlich voranstellen.

import kartenspiel
# Testprogramm
kartenstapel = kartenspiel.Kartenstapel()
kartenstapel.mischen()
meinKartenhaufen = kartenspiel.Kartenhaufen()
while meinKartenhaufen.getWert() < 18:
    karte = kartenstapel.karteZiehen()
    meinKartenhaufen.hinzufuegen(karte)
print(meinKartenhaufen.getKartenListe())
print(meinKartenhaufen.getWert())

Suche

v
7.2.2.1.5.4
inf-schule.de/oop/python/spiele/objekteklassen/modularisierung/exkurs_modulimportpython
inf-schule.de/7.2.2.1.5.4
inf-schule.de/@/page/EWsN81G79DvNmHVP

Rückmeldung geben