Pythonでは組み込み関数以外(標準・拡張モジュール)を利用する時にはimportメソッドで読み込む必要があります。
ここでは、importメソッドについて以下の内容を解説します。
- importの基本的な使い方
- from-importの記述について
- import-asの記述について
- importエラーの対処法
- 補足:組み込み関数/標準モジュール/サードパーティモジュール
importメソッドとは
組み込み関数はそのまま使えますが、pythonには目的に応じた便利な標準モジュールが用意されています。
標準モジュールやサードパーティモジュール、自作のモジュールを利用する時に必要となるのが、
importメソッドを使用してモジュールを読み込む必要があります。
importメソッドの使い方
importの基本的な使い方を解説します。
記述方法
importメソッドの記述方法は、
import モジュール名
でモジュールを読み込み使うことができます。
一般的には、プログラムソースの先頭でまとめて記述します。
PEP8では非推奨となっていますが、複数のモジュールを読み込む場合は
Import モジュール名,モジュール名,モジュール名
でも読み込めます。
モジュールのインポート順
モジュールをインポートする順番によってエラーになる事はありませんが、
PEP8で推奨される順番は以下の遠です。
- 標準モジュール(sysやrandam)
- サードパーティモジュール(bs4などインストールしたモジュール)
- 自作のモジュール
各グループ間は空白行を入れます。
標準モジュールが組み込み関数のように扱われない理由
組み込み関数はimport不要でそのまま使えます。
Sysやrandamといった標準モジュールもpythonが用意したモジュールなので
import不要にした方が良いと考えてしまいがちですが、
import不要にするとリソース(メモリやCPU)を無駄に使うことになります。
from-importの記述について
importでモジュールを読み込むと、モジュール全体が読み込みますが、from-importで記述するとモジュールの一部(オブジェクト)を読み込みこみます。
from-importのの記述方法は、
from モジュール名 import オブジェクト名
例えば、umaiboモジュールのkakakuオブジェクトだけを読み込みたい場合は、
from umaibo import kakaku
ちなみにオブジェクト名にワイルドカード(*)を記述すると、全てのオブジェクトを読み込みます。
import-asの記述について
コード中でライブラリ名を簡略化したい場合、asを使います。
import-asの記述方法は、
import モジュール名 as 簡略化名
例えば、datetimeモジュールなどモジュール名が長いとき、モジュール名をasで簡略化すれば、コードを書く労力が若干減りますね。
import-asの記述例
>>> import datetime as dt
>>> now = dt.datetime.now()
>>> print(now)
2020-09-11 18:06:36
importエラーの対処法
正しくモジュールのimportができないとimportエラーが発生します。
大体のケースは
- モジュール名の間違い(スペルミス)
- インストールしていないモジュールの読み込み
の2つのケースが多いかと思います。
エラーの原因や対象方法については
「Python:モジュールのimportができない時の対処方法」に記載しています。
補足:組み込み関数・標準モジュール・サードパーティモジュール
組み込み関数
importを必要としない最初から用意されているメソッドです。
標準モジュール(標準ライブラリ)
pythonのインストール時に同封されているモジュールです。
標準モジュールの一覧は、Python 標準ライブラリで確認できます。
これらを使うプログラムを記述する時は、import文で読み込みましょう。
サードパーティモジュール
必要に応じてインストールするモジュールです。
スクレピングで使うBeatiful Soupや、数値計算や行列を扱うNumPyなどです。
標準モジュールと同様に、これらを使うプログラムを記述する時は、import文で読み込みましょう。
またサードパーティをインストールする際にはpipコマンドでインストールしましょうね。