[python-users] Import von Bibliotheken

Dr. Mark Asbach mark.asbach at pixolus.de
Fr Apr 10 18:45:33 CEST 2015


Hallo Karsten,

in Python (sowie in vielen anderen Programmiersprachen auch) lassen sich Dinge wie Klassen/Strukturen, Module und Packages hierarchisch verschachteln. Bei Python werden oft Klassen in Module gleichen Namens verpackt. Im Modul datetime gibt es eine Klasse datetime, die in den Beispielen von Mittwoch benutzt wird.

import datetime
… importiert das gesamte Modul datetime. Um die Klasse datetime darin zu benutzen, musst Du dann „datetime.datetime" schreiben. Mit datetime.time oder datetime.date kannst Du die anderen enthaltenen Klassen adressieren.

from datetime import datetime
… importiert nur die Klasse datetime aus dem Modul datetime. Um sie zu benutzen musst Du in der Folge nur „datetime“ schreiben und dann ist die Klasse selbst gemeint. Andere Klassen bzw. „Dinge“ aus dem Modul datetime sind dann nicht sichtbar.

from datetime import datetime, date
… importiert zwei Klassen aus dem Modul.

from datetime import *
… importiert alles aus dem Modul. Ist auf den ersten Blick hilfreich, weil man weniger tippen muss und trotzdem auf alles zugreifen kann, macht aber den Sinn der Verschachtelung zunichte. Wenn Du nämlich mehrere Module importierst, darf ein Modul kein Ding enthalten, das den gleichen Namen trägt, wie ein Bestandteil eines anderen Moduls (nennt sich „name clash“). Hättest Du also noch ein Modul „fruit“, was „pineapple“ und „date“ enthielte und schreibst dann:

from datetime import *
from fruit import *

wäre unklar, was mit „date“ gemeint wäre – Dattel oder Datum?

import datetime
import fruit

macht das klar, denn danach gibt’s in Deinem Programm datetime.date und fruit.date.

Grüße,
Mark

-- 
Dr. Mark Asbach
pixolus GmbH
Eupener Straße 165, 50933 Köln
http://pixolus.de, Tel +49 221 949992-20
Registergericht: Amtsgericht Köln, HRB 80243
Geschäftsführer: Dr. Mark Asbach, Dr. Stefan Krausz

> Am 10.04.2015 um 17:47 schrieb Yahoo - Karsten Mayer <karsten.mayer at yahoo.de>:
> 
> Hallo zusammen,
> 
> nachdem wir am Mittwoch über Datetime gesprochen haben, habe ich da noch ein wenig mit geübt.
> Nun ist mir beim Import der Bibliothek aufgefallen, dass ich anders importiere.
> 
> Nämlich so:
> 	import datetime
> 
> Bei unserem Treffen wurde allerdings so importiert:
> 	from datetime import datetime
> 
> Und wie ich beim Ausprobieren feststellen konnte, gibt es auch irgendwelche Unterschiede beim Verwenden.
> 
> Daher meine Frage: Wie unterscheiden sich diese beiden Importe bzw. warum habe ich beide Möglichkeiten?
> 
> Was würde das dann bedeuten?
> 	from datetime import *
> 
> Ich hab schon versucht, die Docs und Google zu befragen aber mit den Ergebnissen komme ich nicht recht klar…
> 
> Viele Grüße
> Karsten
> ________________________________________
> 
> Diese Mail erhalten Sie ueber die Mailingliste python-users der Universitaet zu Koeln
> Nachrichten an: python-users at uni-koeln.de
> Abonnement und Benutzereinstellungen: https://lists.uni-koeln.de/mailman/listinfo/python-users
> Listenarchiv: http://pycologne.de/mlsearch.html
> 
> pyCologne Homepage: http://pycologne.de/

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : smime.p7s
Dateityp    : application/pkcs7-signature
Dateigröße  : 4121 bytes
Beschreibung: nicht verfügbar
URL         : <http://lists.uni-koeln.de/pipermail/python-users/attachments/20150410/f8129841/attachment.p7s>


Mehr Informationen über die Mailingliste python-users