Python模块初始化:最佳实践

4 投票
2 回答
1938 浏览
提问于 2025-04-18 04:05

当我导入一个自定义模块时,我希望能自动运行一个叫做 initialize() 的函数。这个函数主要是用来初始化模块里的全局变量。

mymodule.py 文件里直接调用这个函数是否不太好?把我的模块转换成一个包,并创建一个 __init__.py 文件,这样做值得吗?还是说我应该在主文件里直接调用 mymoduleinitialize() 函数呢?

我的问题和 这个问题 有点关系,但那里的回答我并不完全满意。

2 个回答

0

在创建一个模块的时候,我们希望使用这个模块的人能尽量少做步骤,这样出错的机会也就越小。

所以,创建一个可以自己完成所有初始化工作的 __init__.py 文件是个不错的选择。

这其实是模块存在的一个基本理念:使用模块的人不想去调整那些对他们没有用的内部细节。

0

如果你只有一个模块,那就不需要打包。打包的意思是把多个模块放在一起。如果你的初始化过程比较复杂或者耗时,可以让使用这个模块的程序来决定什么时候和如何进行初始化。否则,所有的初始化都可以放在你的模块里。

撰写回答