为什么导入不包含模块中的所有内容?

时间:2019-06-02 14:51:19

标签: python python-3.x

我想知道,为什么在导入某些模块的类时,必须使用from语句完成。

这里是一个例子:


>>> import selenium
>>> dir(selenium)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__']

缺少webdriver类。但是,当使用from语句导入时,它将被导入。

>>> from selenium import webdriver
>>> dir(webdriver)
['ActionChains', 'Android', 'BlackBerry', 'Chrome', 'ChromeOptions', 'DesiredCapabilities', 'Edge', 'Firefox', 'FirefoxOptions', 'FirefoxProfile', 'Ie', 'IeOptions', 'Opera', 'PhantomJS', 'Proxy', 'Remote', 'Safari', 'TouchActions', 'WebKitGTK', 'WebKitGTKOptions', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 'android', 'blackberry', 'chrome', 'common', 'edge', 'firefox', 'ie', 'opera', 'phantomjs', 'remote', 'safari', 'support', 'webkitgtk']

2 个答案:

答案 0 :(得分:0)

如果您说“导入硒”,则导入the selenium.__init__ file。查看它,我们可以看到它没有任何有用的内容。因此,仅导入硒并不能真正获得任何有用的信息。但是,如果您执行“从硒导入网络驱动程序”,则可以有效地导入selenium.webdriver.__init__,其中包含您真正想要的东西。

有关导入模块的信息,请参见docs

答案 1 :(得分:0)

您不必使用from语句(实际上,最好避免使用from)。也可以使用以下内容:

import selenium.webdriver