Цікаво, що імпорт os.path імпортуватиме всі OS. спробуйте наступне в інтерактивному рядку:
import os.path
dir(os)
Результат буде таким же, як якщо б ви щойно імпортували os. Це тому, що os.path буде посилатися на інший модуль, на основі якої операційної системи у вас є, тому python буде імпортувати os, щоб визначити, який модуль потрібно завантажити для шляху.
довідник
З деякими модулями приказка import foo
не викриватиметься foo.bar
, тому я думаю, це дійсно залежить від дизайну конкретного модуля.
Взагалі, імпорт явних модулів, які вам потрібні, повинен бути незначно швидшим. На моїй машині:
import os.path
: 7.54285810068e-06
секунд
import os
: 9.21904878972e-06
секунд
Ці часи досить близькі, щоб бути досить незначними. Можливо, вашій програмі потрібно буде використовувати інші модулі os
відтепер чи пізніше, тому зазвичай є сенс просто пожертвувати двома мікросекундами та використовувати, import os
щоб пізніше уникати цієї помилки. Я, як правило, просто імпортую ОС у цілому, але бачу, чому деякі вважають за краще import os.path
технічно бути більш ефективною і донести до читачів коду, що це єдина частина os
модуля, яку потрібно використовувати. Це по суті зводиться до мого питання про стиль.