103

私はPythonを使い始めており(試してみる時期が来ています)、いくつかのベストプラクティスを探しています。

私の最初のプロジェクトは、複数のスレッドでコマンドライン実験を実行するキューです。非常に長いmain.pyファイルを取得し始めたので、それを分割したいと思います。一般的に、私は探しています:Pythonプログラマーはどのようにして複数のソースファイルを整理しますか?あなたのために働く特定の構造はありますか?

私の具体的な質問は次のとおりです。

  1. 各クラスは別々のファイルに入れる必要がありますか?
  2. ソースコードに関連する単体テストをどのように整理する必要がありますか?
  3. ドキュメントコメント、特にコマンドライン操作用のコメントはどこに置くべきですか?
  4. 複数のディレクトリを使用している場合、それらの間でクラスをインポートするにはどうすればよいですか?

ここでは試行錯誤で自分の結論を引き出すことができるかもしれませんが、何か良いものから始めたいと思います。

4

2 に答える 2

33

Eric が指摘した記事は、大規模な Python コード ベースの編成の詳細をカバーしているため、すばらしいものです。

Google からここにたどり着き、1 つの大きなソース ファイルを複数の管理しやすいファイルに分割する方法を探している場合は、そのプロセスを簡単に要約します。

現在、次のファイルにすべてが含まれているとしますmain.py

  • utils.py同じフォルダーに別のソース ファイルを作成します (この例では、私たちのものと呼びましょう)。
  • 必要なクラス、関数、ステートメントなどを移動main.pyしますutils.py
  • main.py上部に 1 行追加します。import utils

utils概念的には、これが行うことは、別のソース ファイルで呼び出される新しいモジュールを作成することです。その後、必要な場所にインポートできます。

于 2012-03-27T11:23:33.040 に答える
8

コードとテストを編成する方法は、OO 言語の場合とまったく同じです。

私のやり方からの答え。それは正しくないかもしれませんが、私にとってはうまくいきます

  1. 機能がどのように分割されているかによって異なります。私のメインの python アプリには、エントリ ポイントのクラスと、さまざまな機能のパッケージを含む 1 つのファイルがあります。
  2. 私はEclipseにPyDevを使用し、Javaの場合と同じように整理しています。
>  Workspace
>     |
>     |-Src
>     |   |-Package1
>     |   |-Package2
>     |   |-main.py
>     |-Test
>         |-TestPackage1
>         |-TestPackage2
  1. どこでもDocStringを使用してすべてを追跡します
  2. __init__.py関連するファイルがフォルダーにあることを確認した後。その単なる単純なケースfrom module import class
于 2009-12-04T20:22:52.507 に答える