Python 文档:混淆模块和子模块的术语
Python docs: confusing terminology of modules and submodules
docs说:Packages are a way of structuring Python’s module namespace by using “dotted module names”. For example, the module name A.B designates a submodule named B in a package named A.
包在文档中定义为一个目录,其中包含一些子目录或文件。遵循此约定,这些子目录将是子包。那么子模块将是子目录中的模块,或者子包?
模块名称A.B在名为A的包中指定一个名为B的模块会不会更清楚?
假设目录 A 有一个包含文件 D 的子目录 C,那么人们会说 D,完全 A.C.D,是 A 的 子模块?
来自术语 module 的词汇表:
An object that serves as an organizational unit of Python code. Modules have a namespace containing arbitrary Python objects. Modules are loaded into Python by the process of importing.
... 以及术语 package:
A Python module which can contain submodules or recursively, subpackages. Technically, a package is a Python module with an __path__
attribute.
所以每个(子)包也是一个模块,但反之则不然。
以您给出的包布局为例:
A
├── B.py
├── C
│ ├── D.py
│ └── __init__.py
└── __init__.py
这里,A, B, C, D
是所有的模块(你可以通过它们的名称导入它们:import A
或import A.B
或import A.C
或import A.C.D
)。但是只有 A, C
被视为包。
docs说:Packages are a way of structuring Python’s module namespace by using “dotted module names”. For example, the module name A.B designates a submodule named B in a package named A.
包在文档中定义为一个目录,其中包含一些子目录或文件。遵循此约定,这些子目录将是子包。那么子模块将是子目录中的模块,或者子包?
模块名称A.B在名为A的包中指定一个名为B的模块会不会更清楚?
假设目录 A 有一个包含文件 D 的子目录 C,那么人们会说 D,完全 A.C.D,是 A 的 子模块?
来自术语 module 的词汇表:
An object that serves as an organizational unit of Python code. Modules have a namespace containing arbitrary Python objects. Modules are loaded into Python by the process of importing.
... 以及术语 package:
A Python module which can contain submodules or recursively, subpackages. Technically, a package is a Python module with an
__path__
attribute.
所以每个(子)包也是一个模块,但反之则不然。
以您给出的包布局为例:
A
├── B.py
├── C
│ ├── D.py
│ └── __init__.py
└── __init__.py
这里,A, B, C, D
是所有的模块(你可以通过它们的名称导入它们:import A
或import A.B
或import A.C
或import A.C.D
)。但是只有 A, C
被视为包。