Похоже, вы не беспокоитесь о стоимости времени (хорошо; это было бы глупо, поскольку модули импортируются только один раз), а также о стоимости памяти. Я говорю вам: если вам нужны все функции этих модулей, то как именно вы планируете избегать хранения всех их в памяти? Также можно просто import
вещи самым логичным образом.
Тем не менее, в Python import
- это оператор, а не какая-то директива препроцессора (или аналогичная), и поэтому вы можете отложить импорт модуля до тех пор, пока вам действительно не понадобится его содержимое, просто организовав оператор в запустить в подходящее время. Это может быть значимой оптимизацией в некоторых особенно крупных или сложных проектах, или, по крайней мере, сделать возможными сложные вещи. Помните, что компилятор Python не пытается проверить, есть ли foo
, когда вы ссылаетесь на foo.bar
; каждое имя ищется во время выполнения. Здесь вводится утка; Код foo.bar
не заботится о том, является ли foo
именем модуля, класса или объекта. (Это в основном потому, что модули и классы являются объектами, но я отвлекся ...)