Python:应该选择多个小模块还是一个大模块?

15 投票
6 回答
3510 浏览
提问于 2025-04-15 13:20

我正在开发一个Python的网页应用,里面有一些小模块,各自负责特定的功能,比如 session.pylogger.pydatabase.py 等等。说这些模块小,真的是小;每个文件大概只有3到5行代码,最多也就10行。我每个文件里可能有几个导入和一两个类的定义。我在想,是不是应该把这些模块合并成一个,比如叫 misc.py 的文件?

我觉得分开写模块有助于代码的清晰度,而且如果将来这些模块的代码行数超过10行,我也不会觉得分开写有什么问题。但另一方面,感觉每个文件里只有几行代码,实在是太浪费了!另外,多个小文件和一个大文件在资源使用上有什么显著的区别吗?(当然,我现在还没到需要担心资源使用的地步,但我忍不住想问…)

我查了一下,看看之前有没有人问过这个问题,但没找到和Python相关的具体内容。如果这确实是个重复的问题,希望能指点我一下。

6 个回答

3

对于命令行脚本来说,通常不会有太大区别,除非每次调用都要打开模块中的所有文件,这样的话就会稍微影响性能,因为需要打开n个文件,而不是一个。

对于mod_python来说,通常也不会有区别,因为字节编译的模块会在apache进程运行期间一直保持活跃。

但是对于谷歌应用引擎来说,如果服务不是一直在使用,就会有性能损失,因为每次冷启动都需要打开所有文件。

7

作为模块的用户,我更喜欢通过一次导入就能包含整个模块。除非有特别的理由让用户可以导入不同的选项,否则不要让使用你包的用户进行多次导入。

顺便说一下,一个模块完全可以由多个源文件组成。最简单的做法是使用一个 __init__.py 文件,来把所有其他代码加载到模块的命名空间中。

9

我觉得把代码分成不同的模块可以让代码更清晰。如果将来这些模块的内容超过10行,我也不会觉得把它们分开有什么问题。

没错,继续保持你现在的做法。

撰写回答