如何在 Python 中定义子模块?

amo*_*one 4 python module

Python 有一个名为“os”的模块。它还有一些名为“os.path”的其他模块,它被归类在“os”下。

即使只导入“os”模块,我也可以使用“os.path”方法。

import os

print(os.path.join("sdfs","x"))
Run Code Online (Sandbox Code Playgroud)

我想知道如何定义这样的子模块?

zwe*_*wer 5

这就是模块的__init__.py“魔法” os——它将它的子模块导入path到它的命名空间,本质上为你提供了一种访问后者的方法,即使你只导入os.

os
|- path
   |- __init.__.py    # 2
|- __init__.py        # 1
Run Code Online (Sandbox Code Playgroud)

第一个__init__.py(#1)本质上是import .path这样的,无论何时您只导入os,它都会path在其命名空间中导入,因此您可以将其作为os.path.

(注意:os模块并非完全如此,但这就是实现它的基本方法)