【问题标题】:How to set up collection of Python Classes with inter-dependency?如何设置具有相互依赖关系的 Python 类集合?
【发布时间】:2014-04-01 19:10:44
【问题描述】:

所以我有一组.py文件如下:

/Spider
  Script.py
  /Classes
    __init__.py
    ParseXML.py
    CrawlWeb.py
    TextAnalytics.py

/Classes 子文件夹中的每个 .py 文档都包含一个用于特定目的的类,脚本会安排不同的组件。我有几个问题:

1) 许多类共享框架,例如urllib2threading 等。什么被认为是设置导入语句的“最佳”形式? IE。有没有办法让我使用__init__.py 文件将共享依赖项传递给所有类,然后使用特定的 .py 文件导入单个依赖项?

2) 一些类调用其他类(例如,CrawlWeb.py 文档使用 ParseXML 类在爬取后更新 XML 文件)。我像这样分离出这些类,因为它们每个都很大,因此更容易像这样更新......在这种情况下合并类是否被认为是最好的形式,还是有其他方法可以解决这个问题?

这些类只会用作脚本的一部分。到目前为止,我能够想出的唯一真正的解决方案可能是对所有导入语句使用 Script.py 文件,但这似乎有点混乱。任何建议将不胜感激。

【问题讨论】:

  • 您的问题可能会因主观而被关闭。如果发生这种情况,没关系!请在programmers.stackexchange.com 上再次询问。

标签: python class import frameworks


【解决方案1】:
  1. 处理常见导入的最佳方式是在它们使用的每个模块中import 它们。虽然这可能会让您觉得烦人,因为您必须键入更多内容,但它戏剧性地让代码的读者更清楚地了解哪些模块在范围内。做普通的imports,你不会错过什么;你做得对。
  2. 虽然您当然可以将所有类放在单独的文件中,但在 Python 中将相关类组合到一个模块中更为常见。鉴于您的脚本听起来有多短,这可能意味着您将所有内容都拉到一个文件中是有意义的。这是一个判断电话,我不能提供一成不变的规则。

【讨论】:

  • 谢谢,我会接受这个作为我的答案,以防它关闭。这真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 2018-11-17
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 2019-05-24
  • 1970-01-01
相关资源
最近更新 更多