Я обнаружил новый шаблон. Является ли эта модель хорошо известной или каково ее мнение?
В принципе, у меня есть трудное время, очищая вверх и вниз исходные файлы, чтобы выяснить, какие модули импортируются и т.д., поэтому теперь вместо
import foo
from bar.baz import quux
def myFunction():
foo.this.that(quux)
Я перемещаю весь свой импорт в функцию, в которой они используются, например:
def myFunction():
import foo
from bar.baz import quux
foo.this.that(quux)
Это делает несколько вещей. Во-первых, я редко случайно загрязняю свои модули содержимым других модулей. Я мог бы установить переменную __all__
для модуля, но тогда мне придется обновлять ее по мере развития модуля, и это не помогает загрязнению пространства имен для кода, который действительно живет в модуле.
Во-вторых, я редко получаю список импорта в верхней части моих модулей, половина или более которых мне больше не нужна, потому что я реорганизовал ее. Наконец, я нахожу этот шаблон намного проще для чтения, так как каждое упоминаемое имя находится прямо в теле функции.