Python 模块和包之间有什么区别?

Barbara Streisand
发布: 2024-11-22 04:58:15
原创
942 人浏览过

What's the Difference Between a Python Module and a Package?

理解 Python 中的模块与包

在 Python 中,模块和包之间的区别主要在文件系统级别观察。让我们深入研究它们的主要区别:

  • 模块:任何 Python 文件都被视为模块。模块的名称源自文件的基本名称,不带“.py”扩展名。
  • 包: 包是 Python 模块的集合。与模块不同,包由包含附加“__init__.py”文件的目录表示。该文件将包与仅包含 Python 脚本的目录区分开来。包可以相互嵌套到任意深度,只要每个目录都有其“__init__.py”文件。

虽然这种区别在文件系统组织中很明显,但值得注意的是,当当您导入模块或包时,Python 创建的相应对象始终是“模块”类型。但是,在导入包的情况下,只能直接访问包的“__init__.py”文件中定义的变量、函数和类,而不是子包或子模块。

示例

考虑Python标准中的“xml”包库:

  • “xml”目录包含一个“__init__.py”文件和几个子目录。
  • 其中一个子目录“etree”包含一个“__init__” .py”文件和一个“ElementTree.py”文件。

导入包时交互地:

import xml
登录后复制

您注意到“xml”对象的类型为“module”。访问子组件需要进一步导入:

import xml.etree
import xml.etree.ElementTree
登录后复制

注意:Python 还包括用 C 实现的内置模块,如“sys”,但通常不包括这种区别关于模块和包的讨论。

以上是Python 模块和包之间有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板