Python模块初始化:最佳实践
当我导入一个自定义模块时,我希望能自动运行一个叫做 initialize()
的函数。这个函数主要是用来初始化模块里的全局变量。
在 mymodule.py
文件里直接调用这个函数是否不太好?把我的模块转换成一个包,并创建一个 __init__.py
文件,这样做值得吗?还是说我应该在主文件里直接调用 mymodule
的 initialize()
函数呢?
我的问题和 这个问题 有点关系,但那里的回答我并不完全满意。
2 个回答
0
在创建一个模块的时候,我们希望使用这个模块的人能尽量少做步骤,这样出错的机会也就越小。
所以,创建一个可以自己完成所有初始化工作的 __init__.py
文件是个不错的选择。
这其实是模块存在的一个基本理念:使用模块的人不想去调整那些对他们没有用的内部细节。
0
如果你只有一个模块,那就不需要打包。打包的意思是把多个模块放在一起。如果你的初始化过程比较复杂或者耗时,可以让使用这个模块的程序来决定什么时候和如何进行初始化。否则,所有的初始化都可以放在你的模块里。