Существуют варианты использования в обоих случаях, поэтому я не думаю, что это проблема или.
Я хотел бы рассмотреть возможность использования из модуля import x,y,z
, когда:
Есть довольно небольшое количество вещей для импорта
Назначение импортированных функций очевидно, если они отделены от имени модуля. Если имена довольно общие, они могут конфликтовать с другими и мало что вам скажут. например. видение remove
мало что говорит вам, но os.remove
, вероятно, намекает на то, что вы имеете дело с файлами.
Имена не конфликтуют. Похоже на вышесказанное, но важнее. Никогда не делать что-то вроде:
from os import open
import module [as renamed_module]
имеет то преимущество, что дает немного больше контекста о том, что вызывается, когда вы его используете. Недостатком является то, что это немного более загромождено, когда модуль на самом деле не дает больше информации, и немного менее производительно (2 поиска вместо 1).
Однако он также имеет преимущества при тестировании (например, замена os.open на фиктивный объект, без необходимости менять каждый модуль) и должен использоваться при использовании изменяемых модулей, например,
import config
config.dburl = 'sqlite:///test.db'
Если сомневаетесь, я всегда буду придерживаться стиля import module
.