模块内需要不同导入的多个类的最佳实践?

时间:2017-10-06 00:09:34

标签: python

我在PEP8中看到,导入的最佳实践是将所有导入放在模块的顶部。我想知道如果你想在同一个模块中有多个具有不同导入需求的子类,情况是否仍然如此。

具体来说,我正在制作一个通用的DataConnector类来读取来自不同来源的数据,然后将这些数据放入pandas数据帧中。我将有子类来读取不同的数据源。例如,一个子类将是CsvConnector(DataConnector),另一个是PGdatabaseConnector(DataConnector)。 Csv子类需要导入csv,PGdatabase类需要导入psycopg2。最佳做法仍然是将所有进口保持在整个模块的顶部吗?

(从逻辑上看,似乎所有的类都应该包含在一个模块中,但我也可以看到将它们全部放在不同的模块中,然后我就不用担心导入那些不可能的库了。使用。)

1 个答案:

答案 0 :(得分:1)

偶尔会有一些情况需要将导入放在其他位置(例如当导入具有需要按特定顺序调用的副作用时),但在这种情况下,所有导入都应位于顶部.py源文件就像一个目录。如果您觉得您的文件过于混乱,请将每个类和相关导入分解为新的源文件。