← Все вопросы

Чем import os отличается от from os import path?

Задан 3 месяца назад622 просмотров2 ответа
12

Видел оба варианта в коде. Один пишет os.path.join(...), другой просто path.join(...). В чём практическая разница и что лучше использовать?

2 ответа

21

import os тащит весь модуль, и ты обращаешься через точку: os.path, os.listdir, os.getcwd. from os import path достаёт в текущее пространство имён только path, и ты пишешь короче — path.join(...), но os.listdir так уже не вызвать, его ты не импортировал.

import os
os.path.join('a', 'b')

from os import path
path.join('a', 'b')

Практический совет: import os обычно читаемее — сразу видно, откуда функция. from ... import ... хорош, когда из модуля нужна пара конкретных вещей и не хочется длинных префиксов. Минус второго — выше шанс конфликта имён (вдруг у тебя уже есть своя переменная path).

8

Разницы в скорости нет, оба грузят весь os. Отличие только в том, какие имена попадут в твой код и как ты к ним обращаешься.

Сергей Малишевский Важное уточнение: from os import path НЕ грузит часть модуля, грузится весь os всё равно · 3 месяца назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект