Pythonの機能を拡張する import文の基本とモジュールの使い方

Pythonの大きな魅力の一つは、その豊富な「モジュール」にあります。モジュールとは、便利な関数やクラスなどが詰まった、いわば「道具箱」のようなものです。標準で用意されているものや、後から追加できるものなど、世界中の開発者が作った便利な機能を自分のプログラムに取り込んで使うことができます。

この記事では、それらのモジュールを自分のプログラムで使えるようにするための**import文**の基本的な使い方を解説します。


目次

基本的なimport文の使い方

最も標準的なモジュールの読み込み方が、import文を使う方法です。import モジュール名と記述することで、そのモジュール全体をプログラムに読み込みます。

ここでは、数学的な計算を行うための**mathモジュール**を例に見てみましょう。

# mathモジュールを読み込む
import math

# mathモジュールの中にある sqrt() 関数を使って平方根を計算する
result = math.sqrt(25)
print(f"25の平方根は {result} です。")

# mathモジュールの中にある定数 pi を使って円周率を表示する
print(f"円周率は {math.pi} です。")

実行結果:

25の平方根は 5.0 です。
円周率は 3.141592653589793 です。

mathモジュールをimportした後は、**モジュール名.関数名モジュール名.定数名**という形式で、その中の機能にアクセスできます。この書き方は、どのモジュールの機能を使っているかが一目で分かり、コードが読みやすくなるという利点があります。


from ... import文で特定の機能だけを読み込む

モジュールの中から、特定の関数や変数だけを使いたい場合は**from ... import文**が便利です。

# mathモジュールから、sqrt関数とpi定数だけを直接読み込む
from math import sqrt, pi

# モジュール名を付けずに直接関数や定数を使える
result = sqrt(36)
print(f"36の平方根は {result} です。")

print(f"円周率は {pi} です。")

実行結果:

36の平方根は 6.0 です。
円周率は 3.141592653589793 です。

from math import sqrt, piと書くことで、sqrtpiをモジュール名なしで直接呼び出せるようになります。コードが少し短くなりますが、どのモジュール由来の機能かが分かりにくくなる場合もあるため、読みやすさを意識して使い分けることが大切です。


非推奨:from ... import * の使い方と注意点

from モジュール名 import *という書き方をすると、そのモジュールに含まれる全ての公開されている関数や変数を一度に読み込むことができます。

# mathモジュールから全ての機能を直接読み込む(非推奨)
from math import *

# モジュール名なしで使える
result = sqrt(49)
print(f"49の平方根は {result} です。") # 7.0
print(pi) # 3.141592653589793

この方法は、短いコードを手早く書きたいときには便利に見えるかもしれません。しかし、実用的なプログラムで使うことは一般的に推奨されません

理由は、モジュール内の全ての名前が自分のプログラムに持ち込まれるため、意図せず自分の定義した変数名や関数名と衝突してしまう危険性が高まるためです。どの機能がどこから来たのかが非常に分かりにくくなり、コードの可読性やメンテナンス性を著しく低下させる可能性があります。

特別な理由がない限りは、import モジュール名またはfrom モジュール名 import 機能名のどちらかの方法を使いましょう。


まとめ

今回は、Pythonでモジュールを読み込むためのimport文について解説しました。

  • import モジュール名: モジュール全体を読み込み、モジュール名.関数名の形で使います。最も安全で推奨される方法です。
  • from モジュール名 import 機能名: モジュールから特定の機能だけを読み込み、直接使えます。
  • from モジュール名 import *: 全ての機能を読み込みますが、名前の衝突を招く可能性があるため使用は避けるべきです。

モジュールを使いこなすことは、効率的なプログラミングへの第一歩です。色々な標準モジュールをimportして、どんな機能があるか試してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次