PEP8では、インポートのベストプラクティスとして、すべてのインポートをモジュールの先頭に置くことが推奨されています。私は同じモジュール内のすべての異なるインポートが必要な複数のサブクラスを必要とする場合、これがまだ当てはまるかどうか疑問に思っています。異なるインポートが必要なモジュール内の複数のクラスのベストプラクティス?
具体的には、DataConnector
クラスを作成して、さまざまなソースからデータを読み込み、そのデータをpandasデータフレームに格納します。さまざまなデータソースを読み取るサブクラスがあります。たとえば、あるサブクラスは、別のサブクラスはPGdatabaseConnector(DataConnector)
です。 Csvサブクラスはcsv
をインポートする必要があり、PGdatabaseクラスはpsycopg2
をインポートする必要があります。すべての輸入品をモジュール全体のトップに保つことがベストプラクティスですか?
(論理的には、すべてのクラスが1つのモジュールに含まれているように見えますが、それらをすべて別のモジュールに入れることもできますし、使用されないライブラリの読み込みについても心配する必要はありません)。
一部のモジュールのみが使用可能な場合でもアプリケーションを部分的に実行したい場合を除きます。 OPは、同じモジュール内でクラスごとに条件付きでインポートできるようにしたいと思います(PythonはJavaではなく、同じモジュール内に複数のクラスを持つことができます)。 – cowbert