Цікаво, що імпорт 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модуля, яку потрібно використовувати. Це по суті зводиться до мого питання про стиль.