如何设置具有相互依赖性的Python类集合?

时间:2014-04-01 19:10:45

标签: python class import frameworks

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

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

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

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

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

这些类只会被用作脚本的一部分。到目前为止,我能够提出的唯一真正的解决方案可能是使用Script.py文件来处理所有的import语句,但它看起来有点混乱。任何建议都将非常感激。

1 个答案:

答案 0 :(得分:1)

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