紹介
Pythonプログラミング言語にはさまざまな組み込み関数が付属しています。その中にはいくつかの一般的な関数が含まれています:
print()
は式を出力しますabs()
は数値の絶対値を返しますint()
は別のデータ型を整数に変換しますlen()
はシーケンスやコレクションの長さを返します
しかしながら、これらの組み込み関数は限られており、より洗練されたプログラムを作成するためにモジュールを利用することができます。
モジュールはPythonの.py
ファイルで構成されるPythonコードです。任意のPythonファイルはモジュールとして参照できます。 hello.py
というPythonファイルは、hello
というモジュール名を持ち、他のPythonファイルにインポートしたり、Pythonコマンドラインインタープリタで使用することができます。Python 3でのモジュールの作成方法については、Python 3でモジュールを書く方法を読んで学ぶことができます。
モジュールは、他のPython .py
ファイルやPythonコマンドラインインタープリターを介して参照できる関数、クラス、および変数を
定義することができます。Pythonでは、モジュールはimport
ステートメントを使用してアクセスされます。これを行うと、モジュールのコードが実行され、定義のスコープが保持されるため、現在のファイル(またはファイル群)でこれらを使用できます。
たとえばPythonがhello
という名前のモジュールをインポートすると、まず組み込みのhello
モジュールを検索します。組み込みのモジュールが見つからない場合、Pythonインタプリタはsys.path
変数から受け取ったディレクトリのリスト内のhello.py
という名前のファイルを検索します。
このチュートリアルでは、モジュールの確認とインストール、モジュールのインポート、およびモジュールのエイリアスについて説明します。
前提条件
コンピュータまたはサーバーにはPython 3がインストールされ、プログラミング環境が設定されている必要があります。プログラミング環境が設定されていない場合は、オペレーティングシステム(Ubuntu、CentOS、Debianなど)に適したローカルプログラミング環境またはサーバーのプログラミング環境のインストールおよびセットアップガイドを参照してください。
ローカルプログラミング環境またはサーバー上のプログラミング環境を設定するためのインストールおよびセットアップガイドについては、適切なオペレーティングシステム(Ubuntu、CentOS、Debianなど)に関する情報を参照してください。
モジュールの確認とインストール
Python標準ライブラリには、システム機能へのアクセスを提供するか、標準化されたソリューションを提供する多くのモジュールが組み込まれています。Python標準ライブラリはすべてのPythonインストールの一部です。
情報: このチュートリアルの例のコードに従うには、python3
コマンドを実行してローカルシステムでPython対話シェルを開きます。その後、>>>
プロンプトの後に例をコピー、貼り付け、または編集できます。
これらのPythonモジュールが準備できているかどうかを確認するには、ローカルのPython 3プログラミング環境またはサーバーベースのプログラミング環境に入り、コマンドラインでPythonインタープリターを起動します。
インタープリター内で、import
ステートメントを実行して、指定されたモジュールが呼び出し可能であることを確認できます。
math
は組み込みモジュールなので、インタープリターはフィードバックなしでタスクを完了し、プロンプトに戻ります。これは、math
モジュールを使用するために何もする必要がないことを意味します。
matplotlib
のようにインストールされていないモジュールでimport
ステートメントを実行しましょう:
matplotlib
がインストールされていない場合、次のようなエラーが表示されます:
OutputImportError: No module named 'matplotlib'
CTRL + D
でPythonインタープリターを無効にし、次にpip
を使用してmatplotlib
をインストールします。
次に、pip
を使用してmatplotlib
モジュールをインストールできます:
インストールされると、Pythonインタープリターでimport matplotlib
を使用してmatplotlib
をインポートし、エラーなしで完了します。
モジュールのインポート
モジュールの関数を使用するには、import
ステートメントを使用してモジュールをインポートする必要があります。
import
文は、import
キーワードとモジュール名で構成されています。
Pythonファイルでは、これはコードの先頭に宣言され、シェバン行や一般的なコメントの下に配置されます。
したがって、Pythonプログラムファイルmy_rand_int.py
では、この方法でrandom
モジュールをインポートします:
モジュールをインポートすると、現在のプログラム内で別個の名前空間として利用可能になります。これは、ドット表記で関数を参照する必要があることを意味します。
実際には、random
モジュールの例では、次のような関数があります:
random.randint()
はランダムな整数を返す関数を呼び出し、またはrandom.randrange()
は指定された範囲からランダムな要素を返す関数を呼び出します。
次に、my_rand_int.py
プログラム内でrandom
モジュールの関数をどのように呼び出すかを示すfor
ループを作成しましょう:
この小さなプログラムは、最初の行で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
ステートメントを追加することができます:
コンマで区切られた複数のモジュールをインポートするプログラムも見ることができますが、これはPEP 8スタイルガイドと一貫していません。
追加モジュールを利用するために、math
から定数pi
をプログラムに追加し、出力されるランダムな整数の数を減らすことができます:
これで、プログラムを実行すると、次のような出力が得られます。最後の行の出力はpiの近似値です:
Output18
10
7
13
10
3.141592653589793
import
ステートメントを使用すると、Pythonプログラムに1つ以上のモジュールをインポートして、そのモジュールで構築された定義を利用できます。
from
… import
を使用する
プログラムの名前空間内でモジュールからアイテムを参照するには、from
… import
ステートメントを使用できます。この方法でモジュールをインポートすると、ドット記法ではなく名前で関数を参照できます。
この構築では、直接参照する定義を指定できます。
他のプログラムでは、モジュール内で定義されたすべてのものへの参照として、ワイルドカードとしてアスタリスク(*
)を使用するimport
ステートメントを見ることがありますが、これはPEP 8によって非推奨です。
まず、random
モジュールから特定の関数randint()
をインポートする方法を見てみましょう。
ここでは、まずfrom
キーワードを呼び出し、次にモジュールのrandom
を指定します。次に、import
キーワードを使用して使用したい特定の関数を呼び出します。
これで、プログラム内でこの関数を実装すると、random.randint()
のようにドット記法で関数を書く必要はなく、randint()
のみを書く必要があります。
プログラムを実行すると、以前に受け取った出力と似た出力を受け取ります。
from
… import
構文を使用することで、プログラムの名前空間内でモジュールの定義された要素を参照できるようになり、ドット記法を避けることができます。
モジュールのエイリアス
Pythonのモジュール名とその関数の名前をas
キーワードを使って変更することが可能です。
プログラム内で同じ名前を既に別のものに使用している場合、別のインポートしたモジュールがその名前を使用している場合、または頻繁に使用している長い名前を略したい場合など、名前を変更したい場合があります。
この文の構造は以下のようになります:
my_math.py
プログラムファイル内のmath
モジュールの名前を変更してみましょう。モジュール名をm
に略します。変更後のプログラムは以下のようになります:
プログラム内では、今後math.pi
ではなくm.pi
としてpi
定数を参照します。
一部のモジュールでは、エイリアスを使用するのが一般的です。たとえば、matplotlib.pyplot
モジュールの公式ドキュメントでは、plt
をエイリアスとして使用するように指定されています:
これにより、プログラマーはモジュール内で利用可能な関数のどれにでも短い単語plt
を追加することができます。たとえば、plt.show()
のようになります。このエイリアスのインポート文は、私たちの「Python 3でデータをプロットする方法 – matplotlib
チュートリアル」内で使用されています。
結論
モジュールをインポートすると、Pythonに組み込まれていない関数を呼び出すことができます。一部のモジュールはPythonの一部としてインストールされており、一部はpip
を介してインストールします。
モジュールを利用することで、既存のコードを活用することで、プログラムをより堅牢で強力にすることができます。また、独自のモジュールを作成することもでき、将来のプログラムで自分自身や他のプログラマーが使用できるようにします。
Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3