- 「Pythonの勉強を始めたけど、コードの一番上にある import 〇〇 とか from 〇〇 import △△ って何が違うの?」
- 「よくわからないから、とりあえずネット記事をそもままコピペしてる…」
そんな経験はありませんか?
入門書や技術記事のコードをそのままコピペして動かしているものの、それぞれの意味や違いを正しく把握して、より綺麗なコードを書きたいと感じる場面はよくあります。
今回は、Pythonで特定の機能だけをピンポイントに読み込む「from … import …」の基本的な使い方と仕組みについて解説します。
この記述方法を身につけることで、コーディングの手間が削減されるだけでなく、コード全体の可読性が向上し、後からの見直しやメンテナンスにかかる負担も大幅に軽減されます。
そもそも「モジュール」とは?
Pythonにおけるモジュールとは、特定の用途ごとに便利な関数や定数などがまとめられたファイルのことです。身近な日常の道具に例えると、特定の作業用具が整然と詰まった工具箱のような存在です。
例えば、高度な計算を行うためのmathや、日付や時刻をスマートに処理するためのdatetimeなど、Pythonには標準で多種多様なモジュールが用意されています。
これらをプログラムの中で利用できるように宣言する命令がimportになります。
importとfrom importの決定的な違い
モジュールを読み込む際、標準的なimportと「from … import …」にはどのような違いがあるのでしょうか?
作業机の上での動作に例えて整理してみます。
モジュール全体を取り込むimport
「import math」と記述した場合、mathという工具箱を箱ごと机の上に持ち込む形になります。
箱の中に道具が入った状態のままとなるため、中の機能を利用するたびに「math.pi」のように、どの工具箱の道具なのかを毎回明示して呼び出す必要があります。
特定の機能のみを取り出すfrom import
「from math import pi」と記述した場合、mathという工具箱の中から円周率(pi)という道具だけを取り出して机の上に置く形になります。
あらかじめ机の上に出ている状態となるため、使用する際は「math.」という接頭辞を付けずに、単にpiと書くだけで直接呼び出すことが可能になります。
実際に動かして学ぶコード例
実際のコードで書き方の違いを確認してみましょう。手元のPython実行環境に貼り付けてそのまま動作をご確認いただけます。
# パターン1: モジュール全体をインポートする場合
import math
# 使用するたびに「モジュール名.機能名」と記述します
print("パターン1の円周率:", math.pi)
# パターン2: 特定の機能だけを直接インポートする場合
from math import pi
# モジュール名を省略して、直接変数のように使用できます
print("パターン2の円周率:", pi)
# カンマで区切ることで、複数の機能を一度に取り出すことも可能です
from math import pi, sqrt
print("平方根の計算結果:", sqrt(9))
実務でfrom importを活用するメリットと注意点
コードの記述量を削減し可読性を高める
実務で業務効率化ツールや自動化スクリプトを作成する際、「from … import …」はコードの視認性を高める上で非常に役立ちます。
例えば、日付処理で頻繁に今日の日付を取得する場合、毎回datetime.date.today()と記述するよりも、あらかじめ「from datetime import date」と宣言しておくことで、date.today() とシンプルに記述できます。
記述量が減ることでタイピングミスを防ぎ、処理の流れが直感的に把握しやすくなります。
名前の衝突を避けるための注意点
便利な一方で、運用上の注意点もあります。
複数のモジュールから同じ名前の関数や定数をインポートしてしまうと、名前の衝突(競合)が発生し、意図しない上書きや不具合の原因になります。
また、どのモジュールに由来する機能なのかがコード上で把握しづらくなる懸念もあります。そのため、無暗に多用するのではなく、そのスクリプト内で頻繁に使用する主要な機能に絞って取り出す運用がおすすめです。
今日からぜひ、ネットのコードをただコピペするだけでなく、「あ、これは特定の道具だけを取り出しているんだな」と意識してみてください!
Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。

コメント