PEP 8 sagt:
- Importe werden immer am Anfang der Datei platziert, direkt nach Modulkommentaren und Dokumentzeichenfolgen sowie vor Modulglobalen und -konstanten.
Gelegentlich verstoße ich gegen PEP 8. Manchmal importiere ich Dinge in Funktionen. In der Regel mache ich das, wenn es einen Import gibt, der nur innerhalb einer einzelnen Funktion verwendet wird.
Irgendwelche Meinungen?
BEARBEITEN (der Grund, warum ich das Importieren in Funktionen für eine gute Idee halte):
Hauptgrund: Es kann den Code klarer machen.
- Wenn ich mir den Code einer Funktion anschaue, frage ich mich vielleicht: "Was ist Funktion / Klasse xxx?" (xxx wird innerhalb der Funktion verwendet). Wenn ich alle meine Importe oben im Modul habe, muss ich dort nachsehen, was xxx ist. Dies ist eher ein Problem bei der Verwendung
from m import xxx
. Das Sehenm.xxx
in der Funktion sagt mir wahrscheinlich mehr. Je nachdem, wasm
ist: Ist es ein bekanntes Top-Level-Modul / Paket (import m
)? Oder ist es ein Untermodul / Paket (from a.b.c import m
)? - In einigen Fällen kann das Verständnis der Funktion erleichtert werden, wenn diese zusätzlichen Informationen ("Was ist xxx?") In der Nähe des Verwendungsortes von xxx verwendet werden.