gpt4 book ai didi

python - Python 是如何调用 in-imported 模块的?

转载 作者:太空狗 更新时间:2023-10-30 01:22:11 25 4
gpt4 key购买 nike

我用过:

import urllib.request 

然后:

d={'value':12345}
urllib.parse.urlencode(d)

我预计 python 会抛出异常,因为我没有导入 urllib.parse 但它起作用了。这是什么原因?

附言:我使用的是 Python 3.3.3

最佳答案

这里是Python 3.3.3中urllib包的相关结构

urllib/
__init__.py <-- empty file
request.py
parse.py

request 模块顶部附近有一行,如下所示:

from urllib.parse import some, helper, functions

正是这一行导致 urllib.parse 被纳入范围。

您可以检查执行 import urllib.parse,另一方面,不会触发 urllib.request 的导入。它必须绑定(bind) urllib 名称(因为 urllib.parse 本身不是有效标识符)但它不会导入任何其他子模块。


注意:您是否做过以下任一操作

import urllib.request as urllib_dot_request
from urllib import request

那么您在命名空间中既没有urllib 也没有urllib.parse 可用。它们仍然会被模块加载器导入,但不会进入作用域。

关于python - Python 是如何调用 in-imported 模块的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25424503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com