Co ciekawe, import os.path zaimportuje cały os. spróbuj wykonać następujące czynności w interaktywnym monicie:
import os.path
dir(os)
Wynik będzie taki sam, jak gdybyś właśnie zaimportował os. Dzieje się tak, ponieważ os.path będzie odnosić się do innego modułu w zależności od posiadanego systemu operacyjnego, więc Python zaimportuje system operacyjny, aby określić, który moduł załadować dla ścieżki.
odniesienie
Z niektórymi modułami powiedzenie import foo
się nie ujawni foo.bar
, więc myślę, że to naprawdę zależy od projektu konkretnego modułu.
Ogólnie rzecz biorąc, samo importowanie potrzebnych jawnych modułów powinno być nieznacznie szybsze. Na moim komputerze:
import os.path
: 7.54285810068e-06
sekundy
import os
: 9.21904878972e-06
sekundy
Te czasy są na tyle bliskie, że można je pominąć. Twój program może wymagać użycia innych modułów od os
teraz lub później, więc zwykle sensowne jest po prostu poświęcenie dwóch mikrosekund i użycie go, import os
aby uniknąć tego błędu w późniejszym czasie. Zwykle opowiadam import os.path
się po prostu za importowaniem systemu operacyjnego jako całości, ale widzę, dlaczego niektórzy woleliby być technicznie bardziej wydajni i przekazać czytelnikom kod, który jest jedyną częścią os
modułu, która będzie musiała zostać użyta. Zasadniczo sprowadza się to do pytania o styl w mojej głowie.