我正在编写一个python库来备份和组织科学数据。我们称之为dataapp
我想把我的目录安排如下:
core/
operations/
cli_interface.py
core包含所有数据类和数据存储库的类,所有代码都是独立的,没有依赖关系。操作包含所有操作,如保存、更新、备份数据,但操作依赖于核心。核心不是操作的子级,应该具有独立使用的能力。你知道吗
然而,将代码从核心导入到操作中似乎是一件丑陋的事情,因为我必须从相对路径和父级导入。你知道吗
导入的另一个选项是全局地在机器上安装dataapp
,在这种情况下,操作可以很容易地从core导入。你知道吗
我的问题是:上面的建议,还是有更好的方法来布局我的代码?你知道吗
你画的这个装置非常好。如果每个模块只允许从它自己的子模块导入(严格的树结构),那么就永远不能在模块之间共享代码。整洁的模块结构是有向无环图(没有相互导入),不一定是树。你知道吗
怎么样:
所以core是操作的子级,因为core是一个只供操作模块使用的数据。你知道吗
尝试此布局:
注意:
__init__.py
文件,它们只是用来定义名称与目录名一致的包的空文件。你知道吗其中
functions.py
具有核心函数定义:模块
actions.py
将与core
有这样的连接:在应用程序
test.py
中,可以按如下方式使用它:还要注意:整个路径引用
core
和operations
包,而不是相对的,也就是说,如果您有lab.sci.core
结构,那么您应该在test.py
应用程序和actions.py
模块中使用from lab.sci.core
和from lab.sci.operations
import命令。你知道吗相关问题 更多 >
编程相关推荐