Was tut ein . in einer import-Anweisung in Python bedeuten?

Lesezeit: 2 Minuten

Ich schaue mir den Code für Python an multiprocessing Modul, und es enthält diese Zeile:

from ._multiprocessing import win32, Connection, PipeConnection

anstatt

from _multiprocessing import win32, Connection, PipeConnection

der feine Unterschied ist die Zeit davor _multiprocessing. Was bedeutet das? Warum die Periode?

  • Es heißt relativer Import: docs.python.org/tutorial/modules.html

    – Aillyn

    02.09.11 um 06:17 Uhr

  • Ohne das .wenn Sie eine Datei hatten _multiprocessing.py aus irgendeinem nicht entzifferbaren Grund neben Ihrem Hauptskript, multiprocessing würde brechen. Mit dem .stellt es sicher, dass es ein eigenes Modul erhält.

    – Chris Morgan

    2. September 11 um 6:19 Uhr

  • Wenn ein . bezieht sich auf Peer-Module, warum sollte die Dokumentation sagen, a zu verwenden . Wann sollte dieses Multiprocessing-Modul Teil der regulären sys.path-Bibliotheken sein? Verwechseln die Frage und die Klarstellung von Chris sie oder verstehe ich sie nicht? Schätzen Sie die Hilfe.

    – rfii

    16. Juli 2020 um 23:13 Uhr


  • Eine weitere Frage (jetzt geschlossen) mit alternativen, guten Antworten: stackoverflow.com/questions/22511792/…

    – Gabriel Staples

    10. Februar 21 um 18:13 Uhr

Das ist die neue Syntax für explizit relative Importe. Es bedeutet Import aus dem aktuellen Paket.

  • Was definiert, was das “aktuelle Paket” ist?

    – Fraktur

    3. Dezember 15 um 22:31 Uhr


  • Es sollte sagen woher das importierende Paket stammt. Es bedeutet im Grunde den aktuellen Namensraum oder das Paketverzeichnis.

    – Keith

    5. Dezember 15 um 19:05 Uhr

  • Danke, ich glaube ich weiß was du meinst. Nur um das klarzustellen, würden Sie etwas dagegen haben, ein Beispiel zu geben?

    – Fraktur

    12. Dezember 15 um 12:05 Uhr

  • Sie können Dinge tun wie: from . import peermodule from .. import parentpackagemodule

    – Keith

    15. Dezember 15 um 5:24 Uhr


  • @bmc Eine gute Möglichkeit, etwas zu lernen, besteht darin, ein kleines Experiment aufzubauen und es selbst auszuprobieren. 😉

    – Keith

    21. Januar 19 um 19:54 Uhr

Der Punkt im Modulnamen wird für den relativen Modulimport verwendet (vgl Hier und HierAbschnitt 6.4.2).

Sie können mehr als einen Punkt verwenden, der sich nicht auf das aktuelle Paket bezieht, sondern auf seine Eltern. Dies sollte nur innerhalb von Paketen verwendet werden, im Hauptmodul sollte man immer absolute Modulnamen verwenden.

Standardmäßig ein Punkt in Ihrem aktuellen Ordner, wenn Sie zum übergeordneten Ordner wechseln möchten, können Sie dies wie folgt tun, meine Python-Version 3.6.3

Geben Sie hier die Bildbeschreibung ein

  • Sie haben die Erklärung so klar gemacht, anstatt 1000 Worte. Danke.

    – elano7

    20. November 21 um 22:03 Uhr

.

758730cookie-checkWas tut ein . in einer import-Anweisung in Python bedeuten?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy