Python有一个名为"os"的模块。它还有另一个名为"os.path"的模块,归类在"os"下面。
即使仅导入"os"模块,我也可以使用"os.path"方法。
import os
print(os.path.join("sdfs","x"))
我想知道如何定义一个像这样的子模块?
这是 os
模块的 __init__.py
'魔法' - 它将其子模块path
导入到其命名空间中,实质上为您提供了一种访问后者的方式,即使您仅导入os
也可以。
os
|- path
|- __init.__.py # 2
|- __init__.py # 1
__init__.py
(#1) 本质上包含了 import .path
,因此每当你导入 os
时,它会将 path
导入其命名空间中,所以你可以将其作为 os.path
访问。os
模块的情况,但本质上是这样实现的)请使用以下结构:
/ Package
├── __init__.py
├── file.py
│
├─┐ subpackage
│ ├── __init__.py
│ └── file.py
│
└─┐ subpackage2
├── __init__.py
└── file.py
__init__.py
文件。这会使得Package.subpackage
的行为类似于os.path
,在导入方面(假设您没有在Package
的主__init__
文件下导入.subpackage
)。package
是你的模块名称(或者在这种类型的模块中,更好地称为 package
)。 - Uriel
__init__.py
文件。 - cs95os.py
是一个文件模块,但path
只需要是该文件中的一个变量。 - OneCricketeer