为什么导入并不总是导入嵌套包? [英] Why does an import not always import nested packages?

查看:49
本文介绍了为什么导入并不总是导入嵌套包?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么第一个代码不起作用而第二个代码起作用?

第一个代码:

导入硒驱动程序 = selenium.webdriver.Firefox()

<块引用>

AttributeError: 'module' 对象没有属性 'webdriver'

第二个代码:

from selenium import webdriver驱动程序 = webdriver.Firefox()

解决方案

嵌套包不会自动加载;直到您导入 selenium.webdriver 才能将其作为属性使用.仅导入 selenium 是不够的.

这样做:

import selenium.webdriver驱动程序 = selenium.webdriver.Firefox()

有时包本身会在 __init__.py 包初始化器中导入一个嵌套包;os 导入 os.path,因此即使您只导入 osos.path 也立即可用.

Why the first code doesn't work while the second does?

First code:

import selenium

driver = selenium.webdriver.Firefox()

AttributeError: 'module' object has no attribute 'webdriver'

Second code:

from selenium import webdriver

driver = webdriver.Firefox()

解决方案

Nested packages are not automatically loaded; not until you import selenium.webdriver is it available as an attribute. Importing just selenium is not enough.

Do this:

import selenium.webdriver

driver = selenium.webdriver.Firefox()

Sometimes the package itself will import a nested package in the __init__.py package initializer; os imports os.path, so os.path is immediately available even if you import just os.

这篇关于为什么导入并不总是导入嵌套包?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆