プログラミング

Step 16: 「モジュール」で機能をインポートする方法

概要

フリーランスエンジニア スリーネクスト

Pythonのコードを部品化し再利用可能にする「モジュール」の仕組みを解説します。「便利な道具箱」に例え、import文を使ってその機能を取り込む基本から、fromやasを用いた効率的なインポート方法までを網羅。

Pythonに標準で付属するライブラリ、追加で導入するサードパーティ製、そして自分で作る自作モジュールの3種類を紹介し、簡単なモジュール作成も実践します。プログラムの整理と拡張に不可欠な知識が身につきます。

目次
「ゼロから始めるPython学習」各ステップのタイトル案
ゼロから始めるPython学習 STEP20目次

プログラミング未経験者向けPython入門講座。環境構築から変数、if文、for文、関数といった基本までを20のステップでわかりやすく解説します。自分のペースで一歩ずつ着実に学び、プログラミングの第一歩を踏み出しましょう!

続きを見る

はじめに

前回のステップでは、一連の処理を「関数」としてまとめる方法を学びました。これにより、コードの再利用性が高まり、整理しやすくなりました。しかし、プログラムが大規模になってくると、たくさんの関数を一つのファイルで管理するのは大変です。

そこで登場するのがモジュール (module) です。モジュールは、関連する関数や変数、クラスなどを一つのファイルにまとめたものです。これを活用することで、Pythonの機能を拡張したり、自分のコードを部品化して整理したりすることができます。

一言で言えば、**モジュールは「便利な道具(関数など)が詰まった道具箱」**のようなものです。自分で新しい道具を作る代わりに、既にある便利な道具箱を持ってきて、中の道具を使わせてもらう。これがモジュールの基本的な考え方です。

モジュールを使う(インポートする)

モジュールにまとめられた機能を使うには、インポート (import) という操作が必要です。import文を使うことで、そのモジュールを自分のプログラムに読み込み、中の機能を使えるようにします。

ここでは、数学的な計算に関する便利な関数が多く含まれている math モジュールを例に見ていきましょう。

基本的な構文: import モジュール名

# mathモジュールをインポートする
import math

# mathモジュールの中にある sqrt という関数を使って平方根を計算する
result = math.sqrt(25)  # 25の平方根は5
print(result)

# mathモジュールの中にある pi という変数(円周率)を使う
print(f"円周率は {math.pi} です。")

# 実行結果
# 5.0
# 円周率は 3.141592653589793 です。

import math と書くことで、「math という名前の道具箱を使えるように準備してください」とPythonにお願いしています。そして、道具箱の中の道具を使うには、道具箱の名前.道具の名前 のように、ドット . でつなげて指定します。

graph 
    A["プログラム開始"] --> B["import math (mathという道具箱を用意)"];
    subgraph "math (道具箱)"
        C["sqrt (平方根を計算する道具)"]
        D["pi (円周率の値)"]
    end
    B --> E["math.sqrt(25) を呼び出す"];
    E --> F["結果 5.0 を得る"];
    F --> G["プログラム終了"];

インポートの様々な方法

モジュールをインポートする方法はいくつかあり、状況に応じて使い分けると便利です。

1. モジュール全体をインポートする (import module)

先ほど紹介した、最も基本的な方法です。

  • 書き方: import math
  • 使い方: math.sqrt(25)
  • メリット: どのモジュールの関数を使っているかが一目瞭然で分かりやすい (math. が付いているため)。
  • デメリット: モジュール名が長い場合、毎回入力するのが少し面倒。

2. モジュールから特定の機能だけをインポートする (from ... import ...)

道具箱の中から、使いたい道具だけを取り出して、自分の作業スペースに直接置くイメージです。

  • 書き方: from math import sqrt, pi
  • 使い方: sqrt(25)math. が不要になる)
  • メリット: モジュール名を省略できるので、コードが短くなる。
  • デメリット: どのモジュールから来た関数なのかが分かりにくくなることがある。また、自分のプログラムで定義した関数と同じ名前だった場合、上書きされてしまう危険性がある(名前の衝突)。

3. モジュールに別名(エイリアス)を付けてインポートする (import ... as ...)

道具箱に、自分が分かりやすいように「ニックネーム」を付けて使うイメージです。特に、データ分析でよく使われる numpypandas といった長い名前のモジュールで頻繁に使われます。

  • 書き方: import math as m
  • 使い方: m.sqrt(25)
  • メリット: コードの記述量を減らしつつ、名前の衝突も避けられる、バランスの取れた方法。
  • デメリット: 慣例から外れた別名を付けると、他の人が読んだときに分かりにくくなる可能性がある (例: import numpy as np は広く使われる慣例)。
graph TD
    subgraph "インポートの方法"
        A["import math"] --> B["math.sqrt()"];
        C["from math import sqrt"] --> D["sqrt()"];
        E["import math as m"] --> F["m.sqrt()"];
    end

どんなモジュールがあるの?

モジュールには、大きく分けて3つの種類があります。

  1. 標準ライブラリ: Pythonをインストールしたときに最初から付属しているモジュール群。数学計算 (math)、乱数の生成 (random)、日付や時刻の操作 (datetime) など、非常に多くの便利な機能が揃っています。
  2. サードパーティライブラリ: 世界中の開発者が作成し、公開しているモジュール群。データ分析の NumPyPandas、ウェブサイトから情報を取得する Requests など、専門的で高度な機能を持つものがたくさんあります。これらは pip というツールを使って別途インストールする必要があります。
  3. 自作モジュール: 自分で作成したモジュール。

自分でモジュールを作ってみよう

モジュールは特別なものではなく、単なるPythonのファイル (.py ファイル) です。自分で関数を作って、それを別のファイルからインポートすることも簡単にできます。

Step 1: モジュールファイルを作成する (my_calculator.py) まず、計算用の関数をまとめた my_calculator.py というファイルを作成します。

# my_calculator.py

def add(a, b):
    """二つの数を足し算する関数"""
    return a + b

def subtract(a, b):
    """最初の数から二番目の数を引き算する関数"""
    return a - b

Step 2: メインのファイルからインポートして使う (main.py) 次に、my_calculator.py同じフォルダに main.py というファイルを作成し、先ほど作ったモジュールをインポートします。

# main.py

# 自作した my_calculator モジュールをインポート
import my_calculator

# モジュール内の関数を使う
sum_result = my_calculator.add(10, 5)
print(f"足し算の結果: {sum_result}")

diff_result = my_calculator.subtract(10, 5)
print(f"引き算の結果: {diff_result}")

# 実行結果
# 足し算の結果: 15
# 引き算の結果: 5
graph LR
    subgraph "ファイル構成"
        A["my_calculator.py (モジュール)"] -- contains --> B["add()関数, subtract()関数"];
        C["main.py (実行ファイル)"] -- "import my_calculator" --> A;
    end

このように、自分で作った関数群もモジュールとして再利用することができます。これにより、プロジェクトの構造を機能ごとにファイル分けして、非常に見通し良く管理することが可能になります。

まとめ

今回は、Pythonの機能を拡張し、コードを整理するための「モジュール」について学びました。

  • モジュール: 関数などがまとめられたPythonファイル(道具箱)。
  • import: モジュールを読み込んで使えるようにする命令。
  • インポートの3つの方法: import m, from m import f, import m as alias を状況に応じて使い分ける。
  • モジュールの種類: 最初から使える標準ライブラリ、追加で入れるサードパーティライブラリ、そして自作モジュールがある。

モジュールを使いこなすことは、Pythonプログラミングを次のレベルに進めるための鍵です。まずは mathrandom などの標準ライブラリを色々試して、どんな便利な道具があるのか探検してみましょう。

目次
「ゼロから始めるPython学習」各ステップのタイトル案
ゼロから始めるPython学習 STEP20目次

プログラミング未経験者向けPython入門講座。環境構築から変数、if文、for文、関数といった基本までを20のステップでわかりやすく解説します。自分のペースで一歩ずつ着実に学び、プログラミングの第一歩を踏み出しましょう!

続きを見る

-プログラミング