【问题标题】:How does Python internally distinguish "from package import module" between "from module import function"Python如何在内部区分“从包导入模块”和“从模块导入函数”
【发布时间】:2018-03-26 12:36:28
【问题描述】:

如果我理解正确的话,python语法from ... import ...可以有两种使用方式

  1. 从包名导入模块名
  2. 从模块名导入函数名

我想了解一下 Python 在内部 是如何处理这两种不同形式的。例如,假设解释器获取“从 A 导入 B”,解释器实际上是否尝试确定 A 是否是包名/模块名,或者它是否在内部将包和模块视为同一类对象( Linux 之类的东西对待文件和目录的方式非常相似)?

【问题讨论】:

标签: python import python-internals


【解决方案1】:

首先,模块是一个包含类和函数的python文件。当你说 From A Import B python 在标准 python 库中搜索 A(一个模块)然后导入 B(函数或类),如果它找到 A,它就是模块。如果没有,它就会出去并开始搜索在目录中存储包并搜索包名称(A),然后如果找到它,它会导入模块名称(B)。如果在过去 2 个进程中失败,则返回错误。

希望这会有所帮助。

【讨论】:

  • 谢谢,但您的回答让我更加困惑:“从 B 导入 A”是什么意思?您的意思是“从 A 导入 B”吗?
  • 对不起,我的意思是从 A 导入 B
  • 我编辑了它。我很困惑,因为在其他语言中是这样的。
猜你喜欢
  • 2013-12-28
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 2020-08-27
  • 2019-11-22
  • 2019-09-21
  • 1970-01-01
相关资源
最近更新 更多