Hintergrund: ich ein paar engen Schleifen in einem Python-Programm, das immer wieder genannt werden, die die datetime.datetime.now()
Verfahren umfassen, sowie die datetime.datetime.min
und datetime.datetime.max
Attribute. Zur Optimierung würde Ich mag sie in den lokalen Namensraum importieren, die wiederholt werden, unnötige Modulhierarchie Name Nachschau vermeiden, etwa so:wie jetzt direkt importieren() von datetime.datetime Submodul
from datetime.datetime import now, min, max
jedoch Python klagt:
Traceback (most recent call last):
File "my_code.py", line 1, in <module>
from datetime.datetime import now, min, max
ImportError: No module named datetime
Frage : Warum funktioniert der obige Submodulimport nicht?
Umgehung: Das kann ich stattdessen tun:
import datetime
dt_now = datetime.datetime.now
dt_min = datetime.datetime.min
dt_max = datetime.datetime.max
Aber, ich bin neugierig, warum der eher traditionelle Ansatz nicht funktioniert? Warum kann ich Methoden und Eigenschaften nicht direkt aus dem datetime.dateime Submodul importieren? ... Und gibt es einen Grund, die obige Problemumgehung zu vermeiden (neben Lesbarkeit, Überlisten, etc.)?
Danke!
Sie sind wahrscheinlich besser dran, Max und Min sowieso nicht zu importieren, oder Sie könnten unerwartete Ergebnisse haben, wenn Sie die eingebauten Min- oder Max-Funktionen –
@PadraicCunningham aufrufen, haben Sie Recht. Deshalb habe ich den Namen in meiner Problemumgehung geändert, aber ich war zu faul, "wie" hinzuzufügen, um sie in meinem ursprünglichen Beispiel umzubenennen. :) – Trevor