[python-users] Import von Bibliotheken

Oliver Frietsch python at friets.ch
Fr Apr 10 18:50:47 CEST 2015


Oder so... :-)

Noch ein Hinweis: Ich selbst finde es seit Jahren ja eigentlich äußerst 
unglücklich, dass die Klasse im Core "datetime" und damit exakt 
identisch wie ihr Modul heißt.
Meine eigenen Klasse haben meist eine Schreibweise à la "DateTime" und 
liegen dann im "datetime"-Modul. So erkennt man direkt, was Klasse und 
was Modul ist...

Am 10.04.2015 um 18:45 schrieb Dr. Mark Asbach:
> 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
>
>
>
> ________________________________________
>
> 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/
>



Mehr Informationen über die Mailingliste python-users