Python from・importの基本的な使い方

Pythonではモジュールやパッケージを使用するときに「import」や「from」を使います。

今回は、Pythonのfrom・importの基本的な使い方を解説します。

Pythonでモジュール・パッケージを使う

モジュールやパッケージ

Pythonは多くのモジュールやパッケージを作成できます。

自作したモジュール・パッケージ以外でも、Python標準ライブラリやPython標準ではない外部パッケージをインターネットからダウンロードすることができます。

Pythonの外部パッケージはPypi(Python Package Index)にあります。

https://pypi.org/

そういったパッケージを使用すると、自分でモジュールを作成しなくてもよくなり、効率的に開発が行えます。今の時代にあった開発ですよね。

参考記事Pythonのパッケージとモジュールの違い

importでモジュール・パッケージを使う

ここではPython標準ライブラリにある「math」モジュールを使用してみます。「math.trunc」で「切り捨て」を行います。

math.trunc(1.231)
#[結果] NameError: name 'math' is not defined

「math」モジュールを使用しようとしましたが、エラーとなりました。Pythonがmathモジュールを認識していないためです。

モジュールやパッケージを使うときには、「import」を使います。

import math

math.trunc(1.231)
#[結果] 1

「import math」としてインポートしたことにより、「math」モジュールが使用できるようになりました。

「math.trunc」は「math」モジュールの「trunc」を使うという意味です。これで小数点以下を切り捨てることができました。

from importのパターン

ここからはimportのパターンをいくつか見ていきます。

例1. 通常のimport

ここでは、PythonでEXCELを操作する「openpyxl」パッケージをインポートする例を取りあげます。

import openpyxl

openpyxl.styles.fonts.Font(color='FF0000')

「openpyxl.styles.fonts.Font」はフォントを設定します。

「openpyxl.styles.fonts.Font」は「openpyxl」の「styles」の「fonts」の「Font」を使用するという意味です。

記述が長いのがデメリットですね。これを省略するのが「from import」です。

例2. fromで省略する

from openpyxl.styles.fonts import Font

Font(color='FF0000')

これは「openpyxl.styles.fonts」の「Font」をインポートするという意味です。

これにより「openpyxl.styles.fonts」を記述する必要はなく、「Font」だけでよくなります。例1と比較すると、かなりコード量が短くなりました。

しかし、「Font」に限定されているため、「openpyxl」パッケージの他のモジュールが使えないというデメリットもあります。

from import次第でコード量を省略できますが、汎用性がなくなるため、使い方には注意が必要です。

他のパターンもいくつか書いてみます。

例3. fromの別パターン

from openpyxl.styles import fonts

fonts.Font(color='FF0000')

これは「openpyxl.styles」の「fonts」をインポートするという意味です。

これにより「openpyxl.styles」を記述する必要はなく、「fonts.Font」だけでよくなります。例1と比較すると、コード量がやや長くなりました。

例4. fromの別パターン

from openpyxl import styles

styles.fonts.Font(color='FF0000')

これは「openpyxl」の「styles」をインポートするという意味です。

これにより「openpyxl」を記述する必要はなく、「styles」だけでよくなります。これまでの例と比較すると、コード量がやや長くなりました。

しかし、「openpyxl.styles」が使えるため、汎用性はありますね。。

これで何となくPythonの「from import」の書き方がわかってきたかと思います。

例5. import ~ as ~で別名をつける

import openpyxl as op

op.styles.fonts.Font(color='FF0000')

長い名前の場合、「AS」で別名をつけて短い名前にリネームすることができます。

ここでは「openpyxl」を何度も使用するケースに備え、「op」にして短い名称に別名をつけました。

例6. import *

もう一つおまけで。

from openpyxl import *

importでアスタリスク「*」も使えます。これはimportした「openpyxl 」以下のオブジェクトがすべて使用できます。

今まで挙げた例よりも使い勝手がよく非常に便利なのですが、Python公式は推奨していません。なので使わない方が良いですね。

インポートするモジュール・パッケージの仕様を把握していないと意図していないものを呼び出したり不具合が起きるかもしれません。便利ですが、トラブルの元になるため、きちんとimport対象を明示すべきですね。

 

Pythonの「import」の使い方をいくつか取りあげてみました。 「from import」の簡単な使い方、「AS」での別名をつけるパターンもありました。

以上、Pythonでのfrom・importの基本的な使い方でした。

コメント