Python分解大型类结构的最佳方法:常量和导入



我有一个很大的文件,其中包含多个类,并希望将它们分解,每个类都有自己的文件。我还有一个文件与这些类接口:

package/
    interface.py
    classALL.py

最后我想要一些类似的东西:

package/
    interface.py
    classes/
        classA.py
        classB.py
        classC.py

类B和C继承自类A。这样做的最佳实践是什么?具体而言:

  1. 在哪里导入库?既然B类是a类,我可以导入a类中的所有内容吗
  2. 如果我在每个类中都需要类似re的东西,我需要在每个类中将其导入吗?这会给我同一个库的多个实例吗
  3. 我把常数放在哪里?我可以在类A中定义CONSTANT_A并完成它吗?或者我需要在每个文件中定义它吗

您可以为每个类提供一个文件,然后将它们全部添加到一个包中。

例如,您有a.pyb.pyc.py,它们分别具有类ABC。通过将文件a.pyb.pyc.py移动到单个文件夹abcp并创建一个__init__.py文件,可以将所有这些类打包到单个包abc中。

__init__.py文件可能包含类似的内容

from .a import A
from .b import B
from .c import C

从而可以直接从包中访问类。

例如,在main.py中,您可以执行类似的操作

import abcp
if __name__ == '__main__':
    oa = abc.A()

最新更新