Как правило, когда я импортирую модули, я предпочитаю просто импортировать верхний модуль и рассматривать все как часть этого, а не импортировать каждую нужную мне функцию в глобальное пространство имен, то есть:
import os
os.walk()
вместоиз:
from os import walk
walk()
Однако недавно я наткнулся на модули, у которых есть подмодули, которые, по-видимому, должны быть импортированы глобально для запуска.Например, модуль Scikit-Learn содержит подмодуль «cluster».Я хочу сделать это:
import sklearn as skl
skl.cluster.KMeans(...)
, но это выдает ошибку, потому что я не инициализировал sklearn.cluster
.Вместо этого я видел это:
from sklearn import cluster
cluster.KMeans(...)
Мне действительно это не нравится, потому что я не люблю загрязнять свое глобальное пространство имен.Есть ли способ обойти это?Я попробовал это:
import sklearn as skl
import skl.cluster
, но это тоже не работает.Как я могу инициализировать подмодуль, не импортируя его глобально?