Python中的深层与扁平模块层次结构

2024-05-18 22:28:52 发布

您现在位置:Python中文网/ 问答频道 /正文

Python中的一些库被组织为子模块的层次结构。从图书馆用户的角度来看,这样的设计有什么利弊?在

例如:

from scipy.sparse.csgraph import dijkstra

对比:

^{pr2}$

甚至是一个完全扁平的设计:

from scipy import dijkstra

  1. 这个问题是关于Python的,因为惯用Python 除了说惯用的Java之外,还做了其他的权衡。在
  2. 我说的是用户界面,而不是作为一个库设计者应该如何构造代码。在

Tags: 模块用户fromimport图书馆层次结构scipy角度
1条回答
网友
1楼 · 发布于 2024-05-18 22:28:52

我认为Python包中特定于接口的方面至少包含以下内容:

  • 名称间距
    如果您的包中有多个dijkstra实现,那么将它们放在不同的子模块中显然是有意义的,以避免像miller_dijkstradijkstra_v1这样的奇怪名称。通过将每个实现放在单独的模块中,这就永远不会发生冲突。

  • Forward declaration
    在某些情况下,如果使用循环导入,Python中可能会出现问题。然后把所有的东西放在一个单独的模块中有时可以帮助解决这些问题。

相关问题 更多 >

    热门问题