#python #import
#python #импорт
Вопрос:
Мой скрипт содержит следующие две строки в качестве операторов импорта:
import os
from os import path
Это кажется логичным подходом для моего скрипта: я использую os.path
его очень часто, поэтому я хочу получить к нему доступ как path
. С другой стороны, мне нужны дополнительные методы from os
, но очень редко, поэтому я могу написать os.access(...)
, например.
Почему это не рекомендуется? pychecker
например, жалуется на это.
Комментарии:
1. Есть ли особая причина, по которой вы не можете просто написать 3 дополнительных символа
os.
?2. почему бы просто
path = os.path
3. @lostyzd Почему вы должны это делать, чтобы избежать недопустимого предупреждения?
Ответ №1:
Обычно странно как импортировать имя из модуля, так и импортировать весь модуль. В этом случае вы импортируете подмодуль, так что это не кажется плохим, хотя большинство людей просто используют «os.path» в своих вызовах функций.
То, что pychecker это не нравится, не означает, что вы не можете этого сделать. Отключите это предупреждение.
Комментарии:
1. Вот почему это предупреждение. Pychecker не знает, является ли это проблемой, поэтому вы будете проинформированы.
Ответ №2:
Вероятно, это связано с тем, что ваш скрипт затем импортирует os.path
дважды, используя дополнительные ресурсы. Возможно, вам следует просто вызвать все функции os
, которые вам понадобятся.
Комментарии:
1. Модули импортируются только один раз, дополнительные ресурсы не используются.
2.
path
не импортируется дважды даже в смысле «у него два имени», поскольку это модуль, а не классos
.3. В этом случае, вероятно, это просто не рекомендуется, потому что это сбивает с толку. поддерживать.
4. @Chriszuma это потому, что pychecker не понимает
path
, что это модуль, а не класс.