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:

Different types of imports#

In Python kann man auf unterschiedliche Arten Bibliotheken importieren. Die folgenden 3 Anweisungen sind alle erlaubt:

import miniworlds
from miniworlds import *
import miniworlds 

With the version used here import miniworlds, you have to write miniworlds.objekt every time you import an object from the miniworlds library. Instead, you can also write from miniworlds import * - Then you can omit miniworlds.

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()

Explizit vs. Implizit.#

Die Variante, jedes Mal miniworlds.objekt anstatt einfach nur objekt zu schreiben, mag zwar zuerst hässlicher erscheinen, weil man mehr Text schreiben muss.

This is still the preferred variant in Python, as it makes it clear which objects were imported from which library.

It could be, for example, that you define a class TiledWorld in your program and thus the same name is used twice - For readers of your program, it will then be difficult to understand what the name TiledWorld refers to.

Im Python-Zen gilt das Prinzip explizit vor implizit - Dies bedeutet, dass oft mehr Code besser ist, wenn dieser dadurch besser nachvollziehbar wird.

Aliase#

The third option is a compromise between the first and second options. If the name miniworlds is too long, you can define an alias, e.g. mwm

The program would then look like this:

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()

Notes for teachers#

Both variants are used in these tutorials. However, as a teacher, one should decide which variant is preferred for the introduction.

For beginners, it can be helpful to refrain from this type of imports.