A Byte of Python

Der __name__ eines Moduls

Jedes Modul hat einen Namen, und auf diesen Namen können Anweisungen in einem Modul zugreifen. Das ist in einer bestimmten Situation besonders nützlich: Wie vorher schon erwähnt, wird der Hauptblock eines Moduls ausgeführt, wenn es zum ersten Mal importiert wird. Was machen wir aber, wenn wir wollen, dass der Block nur ausgeführt wird, wenn das Modul als eigenständiges Programm selbst gestartet wurde, aber nicht, wenn es von einem anderen Modul importiert wurde? Dies können wir erreichen, indem wir das Attribut __name__ des Moduls auswerten.

Verwendung von __name__

Beispiel 8.2. Verwendung von __name__ (beispiel_name.py)

				
#!/usr/bin/python

if __name__ == '__main__':
	print 'Dieses Programm laeuft selbst'
else:
	print 'Ich werde von einem anderen Modul importiert'
				
				

Ausgabe

				
$ python beispiel_name.py
Dieses Programm laeuft selbst

$ python
>>> import beispiel_name
Ich werde von einem anderen Modul importiert
>>>
				
				

So funktioniert es

Jedes Python Modul hat einen im Attribut __name__ definierten Namen, und wenn dieser Name '__main__' lautet, dann bedeutet dies, dass das Modul als eigenständiges Programm vom Benutzer ausgeführt wurde, und wir können dementsprechende Aktionen durchführen.