2012-01-22 10 views
2

これはかなり多くのPythonですが、Djangoユーザーからの質問です。Pythonで非常に具体的にインポートすることは常に良い考えですか?

これはDjangoのアプリがレイアウトされている方法であると仮定します

Webクライアント

  • アプリを
    • myappの#1
      • ライブラリ
        • library.py
    • myappの#2
      • views.py
    • myappの#3

私はviews.pyで働いている、と私はしたい場合import library.py、どちらが良いでしょうか?

from webclient.apps.myapp.library import LibraryClass 
from webclient.apps.myapp.library.library import LibraryClass 

私はPyCharmを使用していますが、どちらの方法でも「未解決の参照」については不満はありません。 非常にspeificallyインポートする方が良いですか?可能であれば、2番目のインポート方法は、名前collisonを避ける可能性が高いですか(/ライブラリ/いくつかの.pyファイルがあります)?

ありがとうございました。

答えて

4

定義されている場所から名前をインポートする必要があります。そうすれば、webclient.apps.myapp.libraryの輸入が一日中止まるはずですが、他の輸入品を壊すことはありません。

+0

ありがとうございます。私と一緒に熊。 「どこに定義されているか」とは、最初のものか2番目のものかを意味します。 – CppLearner

+2

'LibraryClass'が' webclient.apps.myapp.library.library'で定義されている場合はそこからです。 –

+0

もう一度ありがとうございます:)あなたは何度も私を助けてくれました。 – CppLearner

3

Ignacioの回答のフォローアップとして、使用しているライブラリのドキュメントを参照して、インポートする場所を確認する必要があります。 LibraryClasswebclient.apps.myapp.library.libraryで定義されていますが、webclient.apps.myapp.libraryにあると文書化されているため、ある時点で定義がそこに移動するか、またはwebclient.apps.myapp.library.oldversionに移動できますが、まだwebclient.apps.myapp.libraryからアクセス可能です。

関連する問題