この講義では、Python のモジュールとパッケージについて説明します。
これらはファイルの形式でコードを整理する方法であり、Python で Web アプリケーションを構築する場合は非常に重要です。
モジュール
Python のモジュールは基本的に、コードをファイルに編成するために使用する Python コードを含むファイルです。 スーパーマーケットのセクションのようなものだと考えてください。 スーパーマーケットに行くと、果物、野菜、掃除用品などのさまざまなセクションがあります。すべての製品が XNUMX つのセクションにあるわけではありません。
プログラミングと同じ概念です。 main.py にすべての関数とクラスを含むすべてのコードを記述する代わりに、コードを複数のファイルに分割します。 各ファイルはモジュールと呼ばれます。 これにより、コードがより適切に整理および構造化されるだけでなく、コードを再利用することもできます。 例を通して見てみましょう。
重量をポンドからキログラムに、またはその逆に変換する XNUMX つの関数を定義しましょう。
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
ここで、これら XNUMX つの関数を「コンバーター」と呼ばれる別のモジュールに配置し、これらのコンバーター関数を必要とする任意のプログラムにインポートできます。 これを行う方法をお見せしましょう。
プロジェクト パネルを開き、プロジェクトを右クリックして新しいファイルを追加しましょう。 このファイルを「Converters.py」と呼びます。
次に、デフォルト ファイルからコードをコピーし、「Converters.py」に貼り付けます。
これにより、メインモジュールがクリーンアップされ、さまざまな機能で肥大化することはありません。 クラスを使用してより多くの関数を作成すると、対応するモジュールにそれらを配置します。 モジュールには、関連するすべての関数とクラスが含まれている必要があります。 次に、コンバーター モジュールをアプリ モジュールにインポートします。 これを行うには、次のように記述します import converters
拡張子「.py」なしで上部に。
メソッドと同様のドット演算子を使用して、モジュールのメンバーにアクセスできます。
70kgをポンドに変換しましょう:
モジュールをインポートするための別の構文もあります。 モジュール全体をインポートする代わりに、そのモジュールから特定の関数をインポートできます。 入力できます from Converters import
「control + space」を押すと、利用可能な機能のリストが表示されます。 これで、この関数を直接呼び出すことができます。
運動
これがあなたのエクササイズです。
これは、私たちが議論した講義の演習に関連しています。for loops」 リストから最大の数を見つけるプログラムを書きました
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
このコードには現在組織がありません。 関数やモジュールはなく、プログラムは単一のファイルに記述されています。 小さなプログラムでは問題ありませんが、プログラムが大きくなるにつれて、コードをクラスとモジュールに適切に編成する必要があります。 したがって、この演習の一環として、関数を作成して呼び出してください。 find_max
. この関数はリストを取り、そのリストの最大数を返す必要があります。 その後、この関数を別のモジュールに入れ、ここから抽出して、というモジュールに入れます utils
. このモジュールには、一連のユーティリティ関数が含まれている必要があります。 インポート utils
module を現在のモジュールに挿入して呼び出す find_max
関数。 最後に、結果を取得して端末に出力します。
この演習は少し難しいですが、簡単に実行できます。
ソリューション
関数の定義から始めます find_max
numbers というパラメーターを追加します。 この関数内で、リスト内の最大数を見つけるためのアルゴリズムを記述します。
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
このコードをファイル「utils.py」にモジュールとして保存します。
メイン プログラムに戻り、XNUMX つの構文のいずれかでモジュールをインポートし、ロジックを実行します。
XNUMX つ注意していただきたいのは、 max
. その理由は、 max
は Python の組み込み関数であり、再定義しています。 ですから、これは からの警告です Pythonコンパイラ 組み込み関数として max を使用できなくなりました。
Python の組み込みモジュール
Python には、電子メールの送信、日付と時刻の操作、ランダムな値とパスワードの生成などの一般的なタスクのためのいくつかのモジュールを含む標準ライブラリが付属しています。 Python にはすでに非常に多くのモジュールが組み込まれています。つまり、再利用できる機能がすでにたくさんあるということです。 これらのモジュールを見つけることができます こちら.
パッケージ
パッケージは基本的に、モジュールの上にコードを編成するもう XNUMX つの方法です。 実際のプロジェクトには、数百または数千のモジュールが含まれている可能性があり、時間の経過とともにディレクトリは非常に多くのファイルで肥大化します。 したがって、より良いアプローチは、パッケージを複数のモジュールのコンテナーにするパッケージ内で関連するモジュールを整理することです。
プロジェクトに新しいディレクトリが追加され、関連するすべてのモジュールがそのディレクトリに追加されます。 例として、モールを考えてみましょう。 モール内にはパッケージのようなメンズ、ウィメンズ、キッズ アパレルのさまざまなセクションがあります。 各セクションには、靴、T シャツ、ジャケットなど、さまざまな種類の製品のさまざまなエリアがあります。 これらをモジュールと考えてください。
Python でパッケージを作成して使用する方法を見てみましょう。
まず、プロジェクト パネルから新しいディレクトリを追加します。 それを「eコマース」と呼びましょう。 このパッケージには、e コマース アプリケーションに関連するすべてのモジュールが含まれます。
これはまだ空のディレクトリであり、パッケージに変換するには、その中に特別なファイルを作成する必要があります。 このディレクトリに新しい python ファイルを追加し、そのファイルに「__init__」という名前を付けます。 これは Python の特別な規則であり、Python インタープリターがディレクトリ内にこの名前のファイルを見つけると、このディレクトリをパッケージとして扱います。
パッケージを作成する別の簡潔な方法もあります。 プロジェクト パネルを右クリックし、リストから Python パッケージを作成するだけです。 「eコマース」と名付ければ、それだけです。 「__init__」という名前の Python ファイルを含むディレクトリが自動的に作成されます。
それでは、パッケージにモジュールを作成して、「shipping」という名前を付けましょう。 このモジュールでは、送料を計算するための簡単な関数を作成しましょう。
def calc_shipping():
print("calc_shipping")
メイン モジュールでこの関数にアクセスするには、e コマース パッケージを介してアクセスする必要があります。 繰り返しますが、このモジュールをインポートするには XNUMX つの方法があります。
最初の方法では、モジュール全体をインポートしてから、次のように関数を個別に呼び出すことができます。
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
ただし、このアプローチでは、関数の XNUMX つをこのモジュールに呼び出すには、接頭辞を付ける必要があります。 eCommerce.shipping.
それは非常に冗長です。 そのため、パッケージを扱うときは、XNUMX 番目のアプローチをよく使用し、 from
声明。
from eCommerce.shipping import calc_shipping
calc_shipping()
XNUMX つのモジュールに複数の関数がある場合は、それらの間にカンマを使用して、XNUMX 行ですべてをインポートできます。 配送モジュールに税金を計算する別の関数があるとします。 次のようにインポートされます。
from eCommerce.shipping import calc_shipping, calc_tax
個々のモジュールをインポートして、関数をプログラムの後の段階で呼び出すこともできます。 モジュール shipping をインポートしてから、ドット演算子を使用して関数を呼び出しましょう calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
要約!
パッケージとモジュールは、Python では非常に重要です。 特に、ビルドに使用される Django のようなフレームワークで作業したい場合 Webアプリケーション パイソンで。 別の Python コースで Django について調べます。
これは、このシリーズの最後の従来の講義でした。 次の講義では、通常の形式から逸脱して、Python の重要な使用例をいくつか学びます。 これでこのシリーズは終了し、次の Python シリーズに進みます。 お楽しみに。
コメントを残す