Heim >Backend-Entwicklung >Python-Tutorial >An der Spitze importieren oder nicht importieren: Ist der frühe Import effizienter als der verzögerte Import?

An der Spitze importieren oder nicht importieren: Ist der frühe Import effizienter als der verzögerte Import?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 06:35:13418Durchsuche

To Import or Not to Import at the Top: Is Early Importing More Efficient Than Deferred Importing?

Importanweisungen: Oben oder unten?

PEP 8 schreibt vor, dass sich Importanweisungen oben in einem Modul befinden, was einige dazu bringt, die Effizienz des Imports nicht verwendeter Klassen oder Klassen in Frage zu stellen Funktionen schon früh. Es ergibt sich ein Vergleich:

class SomeClass(object):

    def not_often_called(self):
        from datetime import datetime
        self.datetime = datetime.now()

versus

from datetime import datetime

class SomeClass(object):

    def not_often_called(self):
        self.datetime = datetime.now()

Sind verzögerte Importe effizienter als Vorab-Importe?

Obwohl der Modulimport schnell geht, es fallen Kosten an. Durch die Platzierung von Importen am Anfang des Moduls wird dieser triviale Aufwand einmal bezahlt. Die Beschränkung der Importe auf Funktionen innerhalb von Funktionen verlängert jedoch die Laufzeit mit jedem Funktionsaufruf.

Behalten Sie daher für eine optimale Effizienz die Importe im Vordergrund. Ziehen Sie verzögerte Importe nur in Betracht, wenn die Profilerstellung einen Leistungsengpass aufdeckt.

Neben der Effizienz gibt es weitere Rechtfertigungen für verzögerte Importe:

  • Optionale Bibliotheksunterstützung:Verhindern Sie Codefehler, wenn optionale Bibliotheken fehlen.
  • Plugin Initialisierung: Importe innerhalb von Plugin-Initialisierungsdateien ermöglichen das Laden von Modulen ohne Verwendung. Beispiele gibt es in Bazaar-Plugins, die den Lazy-Loading-Mechanismus von bzrlib nutzen.

Das obige ist der detaillierte Inhalt vonAn der Spitze importieren oder nicht importieren: Ist der frühe Import effizienter als der verzögerte Import?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn