Python - 导入父模块

时间:2017-11-02 01:06:11

标签: python

我对导入python模块有疑问。

例如,使用pandas,我可以这样做:

import pandas as pd

然后我可以直接从pd对象访问所有函数和子模块。

然而,当我对sklearn做同样的事情时,

import sklearn as sk

我无法从sk对象访问子模块。这个对象只提供了一些方法和属性。

例如我想使用sklearn.feature_extraction.text.CountVectorizer()函数,但我做不了类似的事情:

sk.feature_extraction.text.CountVectorizer()

我必须首先显式导入文本模块,然后使用其功能:

import sklearn.feature_extraction.text as sk_text
sk_text.CountVectorizer()

有人可以解释一下发生了什么以及如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

模块的某些部分在其构造中明确分开,因此用户必须明确地导入它们。当库(例如Scikit-learn)拥有如此多的子库时,这有助于防止命名空间混乱并减少内存需求。

以下为a collection of import gotchas,部分为relevant for you