前書き

Pythonプログラミング言語には、さまざまなhttps://docs.python.org/3/library/functions.html [組み込み関数]が付属しています。 これらの中には、以下を含むいくつかの一般的な機能があります。

  • 式を出力する + print()+

  • 数値の絶対値を返す + abs()+

  • 別のデータ型を整数に変換する + int()+

  • シーケンスまたはコレクションの長さを返す + len()+

ただし、これらの組み込み関数は制限されており、モジュールを使用してより高度なプログラムを作成できます。

*モジュール*は、Pythonコードで構成されるPython `+ .py `ファイルです。 Pythonファイルはモジュールとして参照できます。 ` hello.py `というPythonファイルのモジュール名は ` hello +`で、他のPythonファイルにインポートしたり、Pythonコマンドラインインタープリターで使用したりできます。 独自のモジュールの作成について学ぶには、https://www.digitalocean.com/community/tutorials/how-to-write-modules-in-python-3 [Python 3でモジュールを書く方法]を読んでください。

モジュールはhttps://www.digitalocean.com/community/tutorials/how-to-define-functions-in-python-3[define functions]、https://www.digitalocean.com/community/tutorials/how- to-construct-classes-and-define-objects-in-python-3 [classes]、およびhttps://www.digitalocean.com/community/tutorials/how-to-use-variables-in-python-3 [変数]他のPython `+ .py +`ファイルまたはPythonコマンドラインインタープリター経由で参照できます。

Pythonでは、 `+ import +`ステートメントを使用してモジュールにアクセスします。 これを行うとき、モジュールのコードを実行し、定義のスコープを維持して、現在のファイルがこれらを利用できるようにします。

たとえば、Pythonが `+ hello `というモジュールをインポートすると、インタープリターは最初に ` hello `という組み込みモジュールを検索します。 組み込みモジュールが見つからない場合、Pythonインタープリターは、 ` sys.path `変数から受け取るディレクトリのリストで ` hello.py +`という名前のファイルを検索します。

このチュートリアルでは、モジュールの確認とインストール、モジュールのインポート、モジュールのエイリアス化について説明します。

モジュールの確認とインストール

  • https://docs.python.org/3/library/ [Python Standard Library] *には多くのモジュールが組み込まれています。これには、システム機能へのアクセスを提供したり、標準化されたソリューションを提供する多くのモジュールが含まれています。 Python標準ライブラリは、すべてのPythonインストールの一部です。

これらのPythonモジュールの準備ができていることを確認するには、https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming-environment-for- python-3 [ローカルPython 3プログラミング環境]またはhttps://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-programming-environment-on-an -ubuntu-16-04-server#step-2-%E2%80%94-setting-up-a-virtual-environment [サーバーベースのプログラミング環境]コマンドラインで次のようにPythonインタープリターを起動します。

python

インタプリタ内から、 `+ import`ステートメントを実行して、次のように、指定されたモジュールを呼び出す準備ができていることを確認できます。

import math

`+ math `は組み込みモジュールであるため、インタープリターはフィードバックなしでタスクを完了し、プロンプトに戻る必要があります。 つまり、 ` math +`モジュールの使用を開始するために何もする必要はありません。

2Dプロットライブラリ + matplotlib`のように、インストールしていない可能性のあるモジュールで + import`ステートメントを実行しましょう。

import matplotlib

`+ matplotlib +`がインストールされていない場合、次のようなエラーが表示されます。

OutputImportError: No module named 'matplotlib'

`+ CTRL + D `でPythonインタープリターを無効にし、 ` pip `で ` matplotlib +`をインストールできます。

次に、 + pip`を使用して + matplotlib`モジュールをインストールできます。

pip install matplotlib

インストールすると、 `+ import matplotlib `を使用してPythonインタープリターに ` matplotlib +`をインポートできます。エラーなしで完了します。

モジュールのインポート

モジュール内の関数を使用するには、 `+ import +`ステートメントでモジュールをインポートする必要があります。

+ import`ステートメントはモジュールの名前とともに + import`キーワードで構成されます。

Pythonファイルでは、これはコードの先頭、シェバン行または一般的なコメントの下で宣言されます。

したがって、Pythonプログラムファイル「+ my_rand_int.py 」では、「 random +」モジュールをインポートして、この方法で乱数を生成します。

my_rand_int.py

import random

モジュールをインポートすると、現在のプログラムで別の名前空間として利用できるようになります。 これは、 `+ [module]。[function] +`のように、ドット表記で関数を参照する必要があることを意味します。

実際には、 `+ random +`モジュールの例では、これは次のような関数のように見えるかもしれません:

  • 関数を呼び出してランダムな整数を返す + random.randint()+、または

  • 指定された範囲からランダムな要素を返す関数を呼び出す + random.randrange()+

https://www.digitalocean.com/community/tutorials/how-to-construct-for-loops-in-python-3 [+ for + loop]を作成して、 ` `+ my_rand_int.py `プログラム内の random + `モジュール:

my_rand_int.py

import random


for i in range(10):
   print(random.randint(1, 25))

この小さなプログラムは、最初の行で最初に `+ random `モジュールをインポートしてから、10個の要素で動作する ` for `ループに移動します。 ループ内で、プログラムは1から25(両端を含む)の範囲内のランダムな整数を出力します。 整数の「+1」と「25」は、パラメータとして「+ random.randint()+」に渡されます。

`+ python my_rand_int.py +`でプログラムを実行すると、10個のランダムな整数を出力として受け取ります。 これらはランダムであるため、プログラムを実行するたびに異なる整数が得られる可能性がありますが、次のようになります。

Output6
9
1
14
3
22
10
1
15
9

整数は1未満または25を超えてはなりません。

複数のモジュールの関数を使用したい場合は、複数の `+ import +`ステートメントを追加して使用できます。

my_rand_int.py

import random
import math

`+ import random、math +`のように、コンマで区切られた複数のモジュールをインポートするプログラムが表示される場合がありますが、これはhttps://www.python.org/dev/peps/pep-0008/#importsと一致しません[PEP 8スタイルガイド]。

追加のモジュールを利用するには、定数+ piを + math`からプログラムに追加し、出力されるランダムな整数の数を減らします。

my_rand_int.py

import random
import math


for i in range(5):
   print(random.randint(1, 25))

print(math.pi)

これで、プログラムを実行すると、次のような出力が表示されます。出力の最後の行はpiの近似値です。

Output18
10
7
13
10
3.141592653589793

`+ import +`ステートメントを使用すると、1つ以上のモジュールをPythonプログラムにインポートして、それらのモジュールで構築された定義を利用できます。

+ from…` + import`を使用する

プログラムの名前空間内のモジュールから項目を参照するには、 + from +… `+ import +`ステートメントを使用できます。 この方法でモジュールをインポートすると、ドット表記ではなく名前で関数を参照できます

この構成では、直接参照する定義を指定できます。

他のプログラムでは、アスタリスク( + * +)をワイルドカードとして使用して、モジュール内で定義されたすべてへの参照を `+ import +`ステートメントが取り込むことがありますが、これはhttps://www.pythonで推奨されていません。 org / dev / peps / pep-0008 /#imports [PEP 8]。

最初に、特定の関数、「+ random 」モジュールからの「 randint()+」のインポートを見てみましょう。

my_rand_int.py

from random import randint

ここでは、最初にキーワード「+ from 」を呼び出し、次にモジュールに対して「 random 」を呼び出します。 次に、 ` import`キーワードを使用して、使用したい特定の関数を呼び出します。

これで、プログラム内にこの関数を実装するとき、関数をドット表記で `+ random.randint()`として書くのではなく、単に ` randint()+`と書くだけです。

my_rand_int.py

from random import randint


for i in range(10):
   print(randint(1, 25))

プログラムを実行すると、以前に受け取ったものと同様の出力を受け取ります。

+ from +… `+ import +`構文を使用すると、プログラムの名前空間内でモジュールの定義済み要素を参照できるため、ドット表記を回避できます。

エイリアスモジュール

`+ as +`キーワードを使用して、Python内でモジュールとその機能の名前を変更することができます。

プログラム内の他の何かに同じ名前を既に使用しているため、名前を変更したい場合があります。インポートした別のモジュールもその名前を使用します。

このステートメントの構築は次のようになります。

import [module] as [another_name]

`+ my_math.py `プログラムファイルの ` math `モジュールの名前を変更しましょう。 モジュールを短縮するために、「 math 」のモジュール名を「 m +」に変更します。 変更されたプログラムは次のようになります。

my_math.py

import math as m


print(m.pi)
print(m.e)

プログラム内では、「+ math.pi 」ではなく「 pi 」定数を「 m.pi +」と呼びます。

一部のモジュールでは、エイリアスを使用するのが一般的です。 http://matplotlib.org/users/pyplot_tutorial.html [`+ matplotlib.pyplot `モジュールの公式ドキュメント]は、エイリアスとして ` plt +`の使用を呼び出しています。

import matplotlib.pyplot as plt

これにより、プログラマーは、モジュール内で使用可能な任意の関数に、「+ plt.show()」のように短い単語「 plt 」を追加できます。 このエイリアスインポートステートメントは、https://www.digitalocean.com/community/tutorials/how-to-plot-data-in-python-3-using-matplotlib [Pythonでデータをプロットする方法]で使用中です。 3 ` matplotlib +`チュートリアルの使用]。

結論

モジュールをインポートすると、Pythonに組み込まれていない関数を呼び出すことができます。 Pythonの一部としてインストールされるモジュールもあれば、 `+ pip +`でインストールするモジュールもあります。

モジュールを使用すると、既存のコードを活用するので、プログラムをより堅牢で強力にすることができます。 また、https://www.digitalocean.com/community/tutorials/how-to-write-modules-in-python-3 [独自のモジュールを作成]を使用して、自分自身や他のプログラマが将来のプログラムで使用することもできます。