模块行为中的Python导入包
我有一个关于Python的行为问题。来自C背景,我了解到模块与头文件不同 以下是两个脚本: 模块1.py模块行为中的Python导入包,python,python-3.x,Python,Python 3.x,我有一个关于Python的行为问题。来自C背景,我了解到模块与头文件不同 以下是两个脚本: 模块1.py #!/usr/bin/python3 import urllib Driver.py #!/usr/bin/python3 import module1 我最初期望的行为是将urllib与驱动程序中的module1一起导入。然而,这不是我正在经历的行为。这样说对吗 #!/usr/bin/python3 import urllib import module1 或者这会导致urllib被
#!/usr/bin/python3
import urllib
Driver.py
#!/usr/bin/python3
import module1
我最初期望的行为是将urllib与驱动程序中的module1一起导入。然而,这不是我正在经历的行为。这样说对吗
#!/usr/bin/python3
import urllib
import module1
或者这会导致urllib被导入两次
我在文档中读到,我可以这样做
from module1 import urllib
但这似乎太多了
我最初期望的行为是将urllib
与驱动程序中的module1
一起导入
为什么要这样做?您已在module1
的命名空间(模块字典)中导入urllib
,而不是在Driver
的命名空间(模块字典)中导入
urllib
已导入,但在module1
中,请尝试:
import Driver
Driver.module1.urllib
并确保没有引发任何namererror
s,urllib
在那里
这是否会导致导入两次urllib
不,Python将看到urllib
已经导入(通过查看sys.modules
),只需在命名空间或Driver
中为urllib
创建一个条目
我最初期望的行为是将urllib
与驱动程序中的module1
一起导入
为什么要这样做?您已在module1
的命名空间(模块字典)中导入urllib
,而不是在Driver
的命名空间(模块字典)中导入
urllib
已导入,但在module1
中,请尝试:
import Driver
Driver.module1.urllib
并确保没有引发任何namererror
s,urllib
在那里
这是否会导致导入两次urllib
不,Python将看到
urllib
已经导入(通过查看sys.modules
),只需在名称空间或Driver
中为urllib
创建一个条目即可。好的,这很有意义。在C语言中,如果我将某个库导入头文件并将头文件导入驱动程序,则整个头文件都将被导入,包括导入的库。感谢您澄清这一区别。不要试图在C
和Python
@Shadowfax之间进行比较。:-)尽管Python最流行的实现是在C
中实现的,但它是一种具有不同语义的完全不同的语言!看一看这个,它可以解决你可能遇到的大多数问题。好吧,这是有道理的。在C语言中,如果我将某个库导入头文件并将头文件导入驱动程序,则整个头文件都将被导入,包括导入的库。感谢您澄清这一区别。不要试图在C
和Python
@Shadowfax之间进行比较。:-)尽管Python最流行的实现是在C
中实现的,但它是一种具有不同语义的完全不同的语言!看一眼,它几乎扫清了你可能遇到的大多数问题。