ホームページ >バックエンド開発 >Python チュートリアル >Python コードのインデントとテスト モジュールの例の詳細な説明
この記事では、主に Python コードのインデントとテスト モジュールの例を詳しく紹介します。必要な友達は参考にしてください。
Python コードのインデントとこの記事では、Python コードのインデントとテスト モジュールに関する関連コンテンツを主に紹介します。以下では多くを説明しません。詳しい紹介。
1. Python コードのインデントPython 関数には明確な begin と end がなく、関数の始まりと終わりをマークする中括弧もありません。区切り文字はコロン (:) のみで、コード自体はインデントされます。 例: インデント構築接続文字列関数
def buildConnectionString(params): """Build a connection string from a dictionary of parameters. Returns string.""" return ";".join(["%s=%s" % (k, v) for k, v in params.items()])コードブロックはインデントによって定義されます。 「コードのブロック」とは、関数、if ステートメント、for ループ、while ループなどを意味します。開始インデントはブロックの始まりを示し、インデントを解除するとブロックの終わりを示します。明らかな括弧、中括弧、キーワードはありません。これは、空白が重要であり、一貫性があることを意味します。この例では、関数コード (doc 文字列を含む) が 4 つのスペースでインデントされています。 4 である必要はありません。一貫性があれば十分です。インデントされていない最初の行は、関数本体の外側とみなされます。 例: 「if 文」は、if 文のインデントの例を示します。
def fib(n): (1) print 'n =', n (2) if n > 1: (3) return n * fib(n - 1) else: (4) print 'end of the line' return 1(1) これは、パラメーター n が 1 つある fib という関数です。関数内のすべてのコードはインデントされます。 (2) Python ではコンテンツを画面に出力するのは非常に簡単で、print を使用するだけです。 print ステートメントは、文字列、整数、および辞書やリストなどの他の型を含む任意のデータ型を受け入れることができます。カンマで区切るだけで、出力を混合することもできます。すべての値はスペースで区切られて同じ行に出力されます (カンマは出力されません)。したがって、 fib を 5 で呼び出すと、「n = 5」が出力されます。 (3) if 文はコードブロックの一種です。 if 式が true と評価された場合は、次のインデントされたブロックが実行され、それ以外の場合は else ブロックが実行されます。 (4) もちろん、すべて均等にインデントされている限り、if ブロックと else ブロックには多くの行を含めることができます。この else ブロックには 2 行のコードがあります。複数行のコード ブロックに特別な構文はなく、インデントのみです。最初のいくつかの抗議と Fortran へのいくつかの嘲笑の類似の後、コードのインデントと和解し、その利点がわかり始めるでしょう。主な利点は、インデントがスタイルではなく言語要件であるため、すべての Python プログラムが似ていることです。これにより、他の人の Python コードを読んで理解することがはるかに簡単になります。
注: Python と Java: ステートメントとステートメントの分割
2. Python テスト モジュール
すべての Python モジュールはオブジェクトであり、いくつかの便利なプロパティがあります。これらのプロパティを使用すると、作成したモジュールを簡単にテストできます。 if 名を使用したトリックを次に示します。
注: Python vs. C: 比較と代入if name == "__main__":
では、なぜこの特別な if ステートメントがトリックなのでしょうか?モジュールはオブジェクトであり、すべてのモジュールには組み込みプロパティ name があります。モジュール名の値は、モジュールを適用する方法によって異なります。モジュールがインポートされる場合、name の値は通常、パスやファイル拡張子を除いたモジュールのファイル名になります。ただし、標準プログラムのようにモジュールを直接実行することもできます。その場合、 name の値は特別なデフォルト値 main になります。
>>> import odbchelper >>> odbchelper.__name__ 'odbchelper'
これを理解したら、モジュール内でモジュールのテスト スイートを設計し、その中にこの if ステートメントを含めることができます。モジュールを直接実行する場合、 name の値は main であるため、テスト スイートが実行されます。モジュールをインポートするとき、name の値は別の値になるため、テスト スイートは無視されます。これにより、新しいモジュールをより大きなプログラムに統合する前に、その開発とデバッグがはるかに簡単になります。
ヒント: Mac OS の if name __
MacPython では、if name トリックを機能させるには追加の手順が必要です。ウィンドウの右上隅にある黒い三角形をクリックしてモジュールのプロパティ メニューをポップアップ表示し、[メインとして実行] が選択されていることを確認します。
Python単体テストフレームワークunittestの使い方を解説
Pythonコードとcomments_pythonを分離する方法
以上がPython コードのインデントとテスト モジュールの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。