Von den verschiedenen Möglichkeiten, Code zu importieren, gibt es einige Möglichkeiten, die im Vergleich zu anderen vorzuziehen sind? Dieser Link http://effbot.org/zone/import-confusion.htm kurz besagt, dassPython (und Django) beste Importpraktiken
from foo.bar import MyClass
nicht der bevorzugte Weg ist MyClass unter normalen Umständen zu importieren oder wenn Sie wissen, was Sie tun. (Vielmehr ist eine bessere Art und Weise möchte:
import foo.bar as foobaralias
und dann im Code für den Zugriff auf MyClass verwenden
foobaralias.MyClass
)
Kurz gesagt, scheint es, dass die oben genannten Link ist sagen, es ist in der Regel besser, alles aus einem Modul zu importieren, anstatt nur Teile des Moduls.
Allerdings ist dieser Artikel, den ich verlinkte, wirklich alt.
Ich habe auch gehört, dass es besser ist, im Kontext von Django-Projekten stattdessen nur die Klassen zu importieren, die Sie verwenden möchten, anstatt das ganze Modul. Es wurde gesagt, dass diese Form hilft, zirkuläre Importfehler zu vermeiden oder zumindest das Django-Importsystem weniger fragil zu machen. Es wurde darauf hingewiesen, dass Djangos eigener Code "von x import y" gegenüber "import x" zu bevorzugen scheint.
Angenommen, das Projekt, an dem ich arbeite, verwendet keine speziellen Funktionen von __init__.py
... (alle unsere __init__.py
Dateien sind leer), welche Importmethode sollte ich bevorzugen, und warum?
importiert haben Eine bestimmte Ausnahme dazu könnte in Django sein, wo Sie eine Klasse importieren, die ein Modell implementiert (das eine Datenbanktabelle darstellt). In diesem Fall ist es besser zu sagen "from django.contrib.auth import User". Aber wie gesagt, dies ist eine für eine bestimmte Umgebung spezifische Konvention. –
was ist mit 'von myapp importieren utils; utils.frobnicate() '? – Joschua
Joschua: das ist auch in Ordnung, da jeder, der es durchliest, sehen kann, woher "Frobnicate" importiert wird. –