Python中的一些库被组织为子模块的层次结构。从图书馆用户的角度来看,这种设计的优点和缺点是什么?
例如:
from scipy.sparse.csgraph import dijkstra
与
from scipy.csgraph import dijkstra
甚至是完全扁平的设计:
from scipy import dijkstra
注意:
答案 0 :(得分:0)
我认为 Python 包中接口特定的目标方面至少包含以下内容:
名称间距
如果您的包中有多个dijkstra
实现,将它们放在不同的子模块中显然是有意义的,以避免使用miller_dijkstra
或{{ 1}}。通过将每个实现放在一个单独的模块中,这永远不会发生冲突。
转发声明
在某些情况下,如果您有循环导入,则可能会在Python中遇到问题。然后将所有内容放在一个单独的模块中有时可以帮助解决这些问题。