Python 模块变得太大

Nei*_*l G 3 python python-module

我的模块全部位于一个大文件中,该文件越来越难以维护。打破事物的标准方式是什么?

我的文件中有一个模块my_module.py,我像这样导入它:

import my_module
Run Code Online (Sandbox Code Playgroud)

“my_module”很快就会有一千行,这正在突破我保持一切正常的能力的极限。我正在考虑添加文件my_module_base.pymy_module_blah.py等等,然后替换my_module.py

from my_module_base import *
from my_module_blah import *
# etc.
Run Code Online (Sandbox Code Playgroud)

然后,用户代码不需要更改:

import my_module  # still works...
Run Code Online (Sandbox Code Playgroud)

这是标准模式吗?

Tor*_*cht 5

这取决于您的模块实际在做什么。通常,将模块设为一个包含 ' 文件的目录总是一个好主意__init__.py'。所以你首先要把你的转换your_module.py成类似的东西your_module/__init__.py

之后,您继续按照您的业务逻辑进行。这里有一些例子:

  • 你是否有模块 API 不直接使用的实用函数,将它们放在某个名为的文件中utils.py

  • 你有一些处理数据库或代表你的数据库模型的类吗?把它们放进去models.py

  • 您是否有一些内部配置,将其放入名为settings.py或 的额外文件中可能是有意义的config.py

这些只是示例(稍微借鉴了可重用应用程序的 Django 方法 ^^)。如前所述,这在很大程度上取决于您的模块的功能。如果之后它仍然太大,那么创建子模块(作为带有自己的子目录__init__.py)也是有意义的。