2

より一般的なファイルStart.pyにツールとしてインポートするために、さまざまな.pyファイル(例:DisplayTools.py、CollectionTools.py ...)でPython関数を開発しています。すべてのファイルが同じディレクトリにある場合は正常に機能します。Start.pyで「importDisplayTools」と言うことができます...しかし、それらをよりプロジェクト的な方法でよりユーザーフレンドリーに整理する方法(Start.pyファイルでのみ作業する必要がある場合)。たとえば、そのようなファイル編成を持つ:

  • 計画/

    Start.py

    • ツール/

      DisplayTools.py

      CollectionTools.py

私は__init__ファイルの使用法を読みましたが、それらがどのように機能するか、それらのファイルをどこに置くか、そしてそれらには何が含まれていますか?

私のプロジェクトを整理するためにそのように私に与える助けがあればお願いします。

どうもありがとう

4

2 に答える 2

5

コード構成を少しリファクタリングし、最上位ディレクトリにわかりやすい名前を付けます。今日、私は を選びhappy_bananasます。たとえば、次のようにファイルを整理するとします。

happy_bananas
   start.py
   DisplayTools.py
   CollectionTools.py

次に、空の__init__.pyファイルを追加するだけで、他のパッケージと同じように使用できます。

happy_bananas
   __init__.py
   start.py
   DisplayTools.py
   CollectionTools.py

そして今、あなたができるなら:

from happy_bananas import DisplayTools

以前と同じように。

これをシステムに取り込むには、パッケージ化してインストール スクリプトを使用する必要があります。distutilsorを使用してこれを行うことができますsetuptoolsが、おそらくこれを行う方法の既存の最も簡単な説明は、Zed Shaw のLearn Python The Hard Way Exercise 46にあります。そこに記載されているように、これらのファイルをコピーして貼り付けるだけで、最終的に次のようなディレクトリ構造になります。

happy_bananas
   setup.py
   tests
       test_happy_bananas.py
   happy_bananas
       __init__.py
       start.py
       DisplayTools.py
       .
       .

次に、セットアップスクリプトを作成したら、フォルダーに移動して実行python setup.py install(またはpython setup.py develop) しimport happy_bananas、任意のファイルで実行できます。

別の注意として、Python の命名規則は、ファイル名と関数名にスネークケースを使用することです。ではなく、DisplayTools.py名前を変更したほうがよいでしょうdisplay_tools.py。通常、キャメルケースはクラス名のみに予約されています。

于 2012-10-06T12:16:39.510 に答える
0

まず第一に、ファイルも実行できるため、一連の関数といくつかのメインコードを持つようにファイルを変更するだけです。

例えば:

if __name__ == "__main__":
    dosomething()

次に、主に、他のスクリプトをインポートするだけで、実際にスクリプトを実行しなくても、そこで使用されている関数を使用できます。

于 2012-10-06T12:45:13.200 に答える