2011-10-20 7 views
7

私はプロジェクトを構築していると私は、次のような問題に遭遇していますのPython:モジュール内の保守コード

私はそれらのそれぞれが、コードの約250ラインを有する、いくつかのサブクラスを実装しています。意味的に、彼らは同じモジュールに一緒に行く必要があると私は、そのコードはかなり厄介な維持作るラインの

from mymodule import SubclassA, SubclassB 

しかし、その後、私のモジュールファイルが持っている何千人も、それらをインポートしたいです。今、私はそれが簡単に維持するために作るために別のファイルに各クラスを持っていますが、私はこのようにそれを使用する必要があります。これはどんな意味がないと、それは本当にひどいです

from subclassa import SubclassA 
from subclassb import SubclassB 

優雅な解決策はありますか?そうでない場合は、上記のどちらが良い解決策ですか?

+1

おそらく、パッケージが必要です:http://docs.python.org/tutorial/modules.html(6.4) – danihp

+0

"何千もの行があり、コードがかなり厄介です"本当に?どうして?あなたの実際の問題はもっと具体的になりますか? –

答えて

5

from subclassa ...のインポートは、2回目のリスティングに示されているように、パッケージ__init__.pyにいつでも置くことができます。その後、あなたの最初のリストに書いたように、彼らはあなたのパッケージから直接利用可能になります。

+0

ありがとう!それはうまくいった。私は最終的に '__init __。py'ファイルにインポートされたパッケージを作成しました。 –

1

私は別のファイルを使用して2番目の解決策を選択します。輸入はそれほどひどいものではありません。

あまりにも面倒であれば、別のファイルにカプセル化してから、そのファイルからすべてのクラスを読み込むことができます。したがって、主なインポートは最初のソリューションのように見えますが、mymoduleファイルの唯一の内容は2番目のソリューションのコードになります。

import SubclassA, SubclassB 

をして、他のプロジェクトの中には、単にこのモジュールからこれらのクラスをインポートすることができます:

0

あなたは、それぞれのファイルからmymoduleモジュール内の両方のクラスをインポートすることができます

from mymodule import SubclassA, SubclassB 

なら、私を知ってみましょうこれはあなたが探しているものです。

関連する問題