python - 如何建立具有相互依赖关系的Python类集合?

标签 python class import frameworks

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

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

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

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

2) 某些类调用其他类(例如,CrawlWeb.py 文档使用 ParseXML 类在爬网后更新 XML 文件)。我像这样将类分开,因为它们每个都很大,因此更容易像这样更新...在这种情况下组合类是否被认为是最佳形式,或者是否有其他方法来解决这个问题?

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

最佳答案

  1. 处理常见导入的最佳方法是在它们使用的每个模块中导入它们。虽然这可能会让您感到厌烦,因为您必须输入更多内容,但它可以让代码的读者更加清楚哪些模块在范围内。通过执行常见的导入操作,您不会丢失任何东西;你做得对。
  2. 虽然您当然可以将所有类放入单独的文件中,但在 Python 中更常见的是将相关类分组到单个模块中。考虑到您的脚本听起来很短,这可能意味着您将所有内容放入一个文件中是有意义的。这是一个判断,我无法提供硬性规则。

关于python - 如何建立具有相互依赖关系的Python类集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22794796/

相关文章:

python - 授予同意后如何从响应 URI 获取访问和刷新 token

javascript - 从 "class"更改为 "React Hooks"

Python pygame mac 导入

asp.net - 在ASP.NET中导入类

python - 部署到 heroku 的 Django 错误

python - 用 groupby pandas 计算行数

python - "Fraction"类型和分数一起出现在我打印的列表中

c++ - 函数如何读取指针?

java - UML - 链接类引用

javascript - 在 Create React App 中设置导入的全局服务