【发布时间】:2017-07-11 04:56:56
【问题描述】:
几个月前,你开始从事一个小项目,随着时间的推移变得越来越大。它从几个 python 文件开始:
project
│ program_1.py
│ program_2.py
我们继续添加更多程序,所以为了避免代码重复,我开始将常用函数提取到单独的文件中。
project
│ program_1.py
│ program_2.py
│ program_3.py
│ shared_module_1.py
│ shared_module_2.py
我们不断添加更多程序,它们的大小相当大,所以我把它们放在自己的文件夹中,就像这样。还要避免在项目文件夹中放置更多文件(这只是一个简化的示例,文件夹有 15 个以上的文件):
project
│ program_1.py
│ program_2.py
│ program_3.py
│ shared_module_1.py
│ shared_module_2.py
└───program_4
│ program_4.py
│ program_4_aux.py
为了让 program_4.py 使用共享模块,我必须使用以下语句:
sys.path.append('../')
我无法跟上这样的步伐。代码变得混乱且难以维护。我不知道如何清理这个烂摊子。
PD:我尝试使用from .. import shared_module_1,但它告诉我parent module '' not loaded cannot perform relative import
非常感谢您的宝贵时间。
【问题讨论】:
-
该项目是一套对公司有用的自动化工具。许多已经在使用中。我希望有一种方法可以在不破坏所有代码的情况下清理这个烂摊子。
-
虽然我认为这是一个很好的问题,但目前它有点宽泛。也许您可以将其缩小到您认为可能是一个好的布局以及为什么它不起作用?
-
我的想法是让这个大文件夹包含所有这些方便的脚本,并能够在它们之间重用一些逻辑。我想知道实现这一目标的最佳实践(遵循 python 原则)是什么。
标签: python python-3.x import architecture