Import von Modulen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Hallo Pythonfans,

mal eine ganz Grundsätzliche Frage:
Wenn ich z.B. das Modul "time" importiern will habe ich ja 2 Moglichkeiten.
Methode 1:

Code: Alles auswählen

import time
Methode 2:

Code: Alles auswählen

from time import *
nach Methode 1 greife ich ja dann auf die Funktionen wie folgt zu:
x = time.time()
bei Methode 2
x = time()

Bei der 2. methode importiere ich ja die Funktionen zu meinen Basisfunktionen. (Wenn man das so sagen kann)
Was ist der Vorteil? Meiner Meinung nach ist das doch die schlechtere Variante, da man so nicht mehr den Zusammenhang zu den Modulen erkennt. Wieso bietet Python da 2 Möglichkeiten an, was ja eigentlich eher Pythonuntypisch ist?

Danke schonmal für eure Beiträge

Gruss
alpha
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Hi

Code: Alles auswählen

from time import *
ist gar nicht zu empfehlen, weil man da den Namespace deiner Applikation vollschreibt (Variabeln von dir könnten überschrieben werden). Man weiss ja nie was in so einem Modul noch alles drin stecken könnte.

mit

Code: Alles auswählen

import time

time.time()
sieht man auch gleichzeitig woher die Funktion stammt (fall es deine Eigene ist und einen Fehler produziert) und es wird nur 1 Name im Namespace verbraucht (time).

Code: Alles auswählen

from time import time
verwende ich nur sehr selten, vielleicht beim math modul wenn man sin oder so braucht.

Gruss
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dann stelle ich auch gleich noch eine weitere Möglichkeit vor:

Code: Alles auswählen

import Tkinter as tk
Damit importiert man das Tkinter Modul als tk. Hat den Vorteil, dass es deinen Namensraum nicht vollschreibt und das du aber trotzdem nicht immer so viel tippen musst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Also ich mag das.
Bestes Beispiel:

Code: Alles auswählen

from bonobo import event_source_client_add_listener as addEventListener
Aber auch bei Datenbanken mache ich das so, damit ich sie später in einem Ruck austauschen kann.
TUFKAB – the user formerly known as blackbird
Antworten