Pythonのモジュールとライブラリ:コードを分割して管理する

プログラムが大きくなると、すべてのコードを1つのファイルに書くのは現実的ではありません。今日学んだ「モジュール」と「ライブラリ」は、コードを整理し、再利用可能にするための仕組みです。

モジュールとは

モジュールは、Pythonコードの書かれたファイルのことです。

なぜモジュールを分けるのか

コードが長くなると、以下の問題が発生します:

1. 読みづらい

  • 数百行、数千行のコードを1つのファイルで管理するのは困難

2. バグの原因になる

  • どこに何が書いてあるか分からず、修正が大変

3. 再利用しにくい

  • 他のプロジェクトで同じ処理を使いたくても、コピー&ペーストが必要

解決策:モジュールで分割管理

プロジェクト/
  ├── main.py          # メインプログラム
  ├── greeting.py      # 挨拶に関する関数
  └── calculation.py   # 計算に関する関数

処理ごとにファイルを分けることで、整理された状態を保てます。

import:モジュールを読み込む

他のファイル(モジュール)を使うには、import で読み込みます。

基本構文

構文: import モジュール名

# greeting.py(別ファイル)
def say_hello():
    print("こんにちは")

def say_goodbye():
    print("さようなら")
# main.py(メインプログラム)
import greeting

greeting.say_hello()    # こんにちは
greeting.say_goodbye()  # さようなら

ポイント

  • 拡張子 .py不要
  • モジュール名.関数名() で使用

モジュールを使うメリット

1. コードの整理

  • 機能ごとにファイルを分けられる

2. 再利用性

  • 他のプロジェクトでも同じモジュールを使える

3. チーム開発

  • 複数人で分担して開発しやすい

4. 保守性

  • バグ修正や機能追加がしやすい

ライブラリ:あらかじめ用意されたモジュール

Pythonには、**あらかじめ用意されたモジュール(ライブラリ)**がたくさんあります。

標準ライブラリの例

# mathライブラリ(数学関数)
import math

print(math.sqrt(16))  # 4.0(平方根)
print(math.pi)        # 3.141592...(円周率)
# randomライブラリ(ランダム処理)
import random

print(random.randint(1, 10))  # 1〜10のランダムな整数
# datetimeライブラリ(日付・時刻)
import datetime

now = datetime.datetime.now()
print(now)  # 2026-02-11 14:30:45.123456

自分で作らなくても、すでに便利な機能が用意されているのがPythonの強みです。

importの他の書き方

特定の関数だけインポート

# すべてをインポート
import math
print(math.sqrt(16))

# 特定の関数だけインポート
from math import sqrt
print(sqrt(16))  # モジュール名なしで使える

モジュールに別名をつける

# 長い名前のモジュールに短い別名をつける
import datetime as dt

now = dt.datetime.now()
print(now)

モジュールとライブラリの違い

正確には、以下のように使い分けられます:

  • モジュール: 1つのPythonファイル
  • パッケージ: 複数のモジュールをまとめたもの
  • ライブラリ: パッケージの集まり、または大きな機能群

ただし、実務では「ライブラリ」という言葉で全体を指すことが多いです。

今日の学びのポイント

  • モジュール: Pythonコードが書かれたファイル
  • import: モジュールを読み込む(拡張子 .py は不要)
  • 使い方: モジュール名.関数名()
  • ライブラリ: Pythonにあらかじめ用意されたモジュール
  • メリット: コードの整理、再利用性、保守性の向上

モジュールとライブラリを使いこなせるようになると、プログラミングの効率が一気に上がります。自分で全部書く必要はなく、既存のライブラリを活用することで、より高度な機能を簡単に実装できます。

次は、実際にライブラリを使って、もっと実践的なプログラムを作っていきます。


コメント