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