Przeglądam kod multiprocessing
modułu Pythona i zawiera on następujący wiersz:
from ._multiprocessing import win32, Connection, PipeConnection
zamiast
from _multiprocessing import win32, Connection, PipeConnection
subtelna różnica dotyczy okresu poprzedniego _multiprocessing
. Co to znaczy? Dlaczego ten okres?
.
, gdybyś miał plik_multiprocessing.py
z jakiegoś nieczytelnego powodu obok głównego skryptu,multiprocessing
zepsułoby się. Dzięki.
temu zapewnia, że otrzymuje własny moduł..
odnosi się do modułów równorzędnych, dlaczego w dokumentacji miałoby być napisane, aby używać a,.
skoro ten moduł wieloprocesorowy powinien być częścią zwykłych bibliotek sys.path? Czy pytanie i wyjaśnienie Chrisa mylą je, czy też nie rozumiem? Doceń pomoc.Odpowiedzi:
To jest nowa składnia dla jawnych importów względnych . Oznacza to import z aktualnego pakietu.
źródło
from . import peermodule
from .. import parentpackagemodule
Kropka w nazwie modułu służy do względnego importu modułu (patrz tutaj i tutaj , sekcja 6.4.2).
Możesz użyć więcej niż jednej kropki, odnosząc się nie do aktualnego pakietu, ale do jego rodzica (ów). Powinno to być używane tylko w pakietach, w głównym module należy zawsze używać bezwzględnych nazw modułów.
źródło