Konzept: Importe#
Mit import kannst du Bibliotheken importieren und die dort abgelegten Klassen und Funktionen verwenden. Es gibt unterschiedliche Arten, wie du Bibliotheken importieren kannst:
Unterschiedliche Arten von Imports#
Man kann in Python auf unterschiedliche Arten Bibliotheken importieren. Die folgenden 3 Anweisungen sind alle erlaubt:
import miniworlds
from miniworlds import *
import miniworlds
Mit der hier verwendeten Version import miniworlds
musst du jedesmal miniworlds.objekt
schreiben, wenn du ein Objekt aus der miniworlds-Bibliothek importierst. Stattdessen kannst du auch from miniworlds import *
schreiben - Dann kannst du miniworlds weglassen.
So sähe das erste Programm aus, wenn wir import miniworlds
geschrieben hätten:
1import miniworlds
2world = miniworlds.TiledWorld()
3world.add_background("images/soccer_green.jpg")
4world.columns = 20
5world.rows = 8
6world.tile_size = 40
7
8world.run()
Explizite vs. Implizit.#
Die Variante jedesmal miniworlds.objekt
anstatt einfach nur objekt
zu schreiben
mag zwar zuerst hässlicher erscheinen, weil man mehr Text schreiben muss.
Dies ist trotzdem in Python die bevorzugte Variante, da so erkennbar ist, welche Objekte aus welcher Bibliothek importiert wurden.
Es könnte ja z.B. sein, dass du in deinem Programm eine Klasse TiledWorld
definierst
und damit zweimal der gleiche Name verwendet wird - Für Leser deines Programms wird es
dann schwierig nachzuvollziehen, worauf sich der Name TiledWorld bezieht.
Im Python-Zen gilt das Prinzip explicit over implicit - Dies bedeutet, dass oft mehr Code besser ist, wenn dieser dadurch besser nachvollziehbar wird.
Aliase#
Die dritte Variante ist ein Kompromiss zwischen erster und zweiter Variante.
Wenn die der Name miniworlds
zu lang ist, dann kannst du einen Alias definieren, z.B. mwm
Das Programm würde dann folgendermaßen aussehen:
1import miniworlds
2world = miniworlds.TiledWorld()
3world.add_background("images/soccer_green.jpg")
4world.columns = 20
5world.rows = 8
6world.tile_size = 40
7
8world.run()
Hinweise für Lehrer#
Es werden in diesen Tutorials beide Varianten verwendet. Als Lehrer sollte man sich aber entscheiden, welche Variante man für den Einstieg bevorzugt.
Für Anfänger kann es hilfreich sein, auf diese Art von Importen zu verzichten.