gpt4 book ai didi

python - Python 中的深度模块层次结构与平面模块层次结构

转载 作者:行者123 更新时间:2023-11-28 19:23:11 27 4
gpt4 key购买 nike

Python 中的某些库被组织为子模块的层次结构。从图书馆用户的角度来看,这样的设计有哪些优缺点?

例如:

from scipy.sparse.csgraph import dijkstra

对比:

from scipy.csgraph import dijkstra

甚至是完全扁平化的设计:

from scipy import dijkstra

注意:

  1. 这个问题专门针对 Python,因为地道的 Python除了惯用的 Java 之外,还有其他权衡。
  2. 我说的是用户界面,而不是库设计者应该如何构建代码。

最佳答案

我认为 Python 包中特定于接口(interface)目标 方面将至少包含以下内容:

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

  • 前向声明
    在某些情况下,如果您有循环导入,您可能会在 Python 中遇到问题。然后将所有内容放在一个单独的模块中有时可以帮助解决这些问题。

关于python - Python 中的深度模块层次结构与平面模块层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19808109/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com