Что интересно, импорт 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
модуля, которую нужно будет использовать. По сути, в моем понимании это сводится к вопросу о стиле.