Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 13872|Antwort: 1

[Kommunikation] Python von Import und Import wird ausführlich erklärt

[Link kopieren]
Veröffentlicht am 25.04.2018 11:20:35 | | | |
Auszug aus dem Python-Lernhandbuch für das Protokoll.

Der Client kann die Import- oder From-Anweisung ausführen. Wenn das Modul nicht geladen wird, suchen diese Anweisungen, kompilieren und führen das Moduldateiprogramm aus. Der Hauptunterschied besteht darin, dass Import das gesamte Modul liest, sodass es definiert werden muss, bevor sein Variablenname gelesen werden kann; from erhält (oder kopiert) modulspezifische Variablennamen.

Import bezieht einen Variablennamen auf das gesamte Modulobjekt, sodass die Eigenschaften des Moduls durch den Modulnamen (z. B. module1.printer) erhalten werden müssen. und from kopiert den Variablennamen in einen anderen Scope, sodass der kopierte Variablenname direkt im Skript verwendet werden kann, ohne ein Modul (z. B. Drucker) durchlaufen zu müssen.

From Statement hat das Potenzial, Namensräume zu brechen. Wenn du Variablen mit from importierst und diese Variablen zufällig mit bestehenden Variablen im Scope dupliziert werden, werden die Variablen leise überschrieben. Dies ist bei der Verwendung von Import-Anweisungen kein Problem, da deren Inhalt durch den Modulnamen erhalten werden muss. Bei Verwendung von from ist das in der Praxis jedoch kein großes Problem, solange man das versteht und erwartet, besonders wenn man die Namen der Importvariablen klar auflistet (z. B. from Module import x, y, z).

Andererseits hat die from-Anweisung, wenn sie mit dem Reload-Aufruf verwendet wird, ein ernsthaftes Problem, da der importierte Variablenname sich auf eine frühere Version des Objekts beziehen kann. Außerdem kann das Formular aus dem Modulimport * tatsächlich den Namensraum unterbrechen und Variablennamen schwer verständlich machen, insbesondere beim Import mehrerer Dateien.

Ein pragmatischerer Vorschlag ist, dass einfache Module im Allgemeinen eher Import als From verwenden. Die meisten from-Anweisungen werden verwendet, um die gewünschten Variablen explizit aufzuzählen, und sind darauf beschränkt, das Formular * nur einmal pro Datei zu verwenden. Auf diese Weise kann jeder undefinierte Variablenname als existierend im von * referenzierten Modul betrachtet werden. Du musst wirklich Import verwenden, wenn du denselben Variablennamen verwenden musst, der in zwei verschiedenen Modulen definiert ist, in diesem Fall kannst du from nicht verwenden.

Ich habe viel geredet, ich weiß nicht, was ich sagen soll, lass uns kurz darüber sprechen.

  • import Modul # Module einführen
  • aus Modulimport Sonstiges # Führen Sie Klassen, Funktionen oder Variablen im Modul ein
  • aus Modulimport * # Alle 'öffentlichen' Mitglieder im Modul einführen


Laienhaft ausgedrückt:

Importiere eine Klasse #把整个一班的学生引入了进来
von einer Gruppe von Importen Xiao Wang #只把一般的小王引入了进来

Zum Beispiel:

Das Zeitpaket ist ein Beispiel, und die folgenden beiden Schreibmethoden sind identisch, wie folgt:








Vorhergehend:Wie man eine Funktion in einem Python-Paket verwendet
Nächster:HP Laptop & Desktop Ghost Windows7 32&64 Sea Drive Edition v201801
 Vermieter| Veröffentlicht am 25.04.2018 11:22:51 |
Datetime zu importieren, um das gesamte Datetime-Paket einzuführen; wenn du die Datetime-Klasse im Datetime-Paket verwendest, musst du die Modul-Namensqualifikation hinzufügen.



Wenn du den Modulnamen-Qualifier nicht hinzufügst, erscheint ein Fehler: TypeError: 'module'-objekt ist nicht aufrufbar \ AttributeError: 'module'-Objekt hat kein Attribut 'now'



Von Datetime Import DateTime wird nur in der DateTime-Klasse im Datetime-Paket eingeführt, und es ist nicht nötig, Modul-Namens-Qualifikationen hinzuzufügen.



Zusammenfassung: Es gibt zwei Möglichkeiten, Module in Python zu importieren: Module importieren und aus Modulimport, wobei der Unterschied darin besteht, dass erstere beim Verwenden aller importierten Elemente den Modulnamen hinzufügen muss, während letztere dies nicht tut.

Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com