Pythonの「パッケージとモジュール」の基礎をハンズオンで学ぼう!5.2

当サイトではアフィリエイト広告を利用しています。

リファレンス

Pythonを学び始めたばかりの人にとって、import の仕組みは少し難しく感じるかもしれません。この記事では、Pythonのモジュールとパッケージについて、ハンズオン形式でわかりやすく解説します!💡

Pythonのコードを整理し、再利用しやすくするために、モジュールやパッケージを適切に使いこなすことが重要です。一緒に学んでいきましょう!✍️✨


📌 学習の流れ

  1. モジュールとパッケージの違いを理解する
  2. モジュールを作成してインポートする
  3. パッケージを作成してインポートする
  4. __init__.py の役割を知る
  5. from ... import ... を活用する

1️⃣ モジュールとパッケージの違いを理解する

まずは、モジュールとパッケージの違いを押さえておきましょう!

🔹 モジュールとは?

Pythonの**「1つのファイル(*.py)」** がモジュールです。
例えば、math_utils.py というファイルを作り、その中に関数を定義すれば、それがモジュールになります。

🔹 パッケージとは?

パッケージは複数のモジュールをまとめたフォルダです。フォルダ内に __init__.py という特別なファイルを置くことで、パッケージとして認識されます。

💡 イメージ

my_project/  
│── main.py   # メインのスクリプト  
│── utils/    # パッケージ  
│   │── __init__.py  
│   │── math_utils.py  
│   │── string_utils.py  

パッケージを使うと、モジュールを整理しやすくなります!📂✨


2️⃣ モジュールを作成してインポートする

🔹 ステップ1:モジュールを作成

まずは、簡単なモジュールを作成しましょう!

📂 フォルダ構成

my_project/
│── main.py
│── math_utils.py  # ここに関数を定義

📌 math_utils.py に以下のコードを書きます。

# math_utils.py
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

🔹 ステップ2:モジュールを import して使う

📌 main.py に以下のコードを書きます。

# main.py
import math_utils  # math_utils.py をインポート

result1 = math_utils.add(3, 5)
result2 = math_utils.subtract(10, 4)

print(f"3 + 5 = {result1}")
print(f"10 - 4 = {result2}")

🔹 実行してみよう!

python main.py

🔹 出力結果

3 + 5 = 8
10 - 4 = 6

✅ これで、モジュールの作成とインポートができました!🎉


3️⃣ パッケージを作成してインポートする

今度は、複数のモジュールをまとめた「パッケージ」を作成してみましょう!

🔹 ステップ1:パッケージを作成

📂 フォルダ構成

my_project/
│── main.py
│── utils/           # これがパッケージ
│   │── __init__.py  # パッケージと認識させるためのファイル
│   │── math_utils.py
│   │── string_utils.py

📌 utils/math_utils.py

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

📌 utils/string_utils.py

def to_uppercase(s):
    return s.upper()

def to_lowercase(s):
    return s.lower()

📌 utils/__init__.py

# __init__.py は空でもOK

🔹 ステップ2:パッケージを import して使う

📌 main.py に以下のコードを書きます。

# main.py
from utils import math_utils, string_utils

print(math_utils.add(2, 3))  # 5
print(math_utils.subtract(9, 4))  # 5
print(string_utils.to_uppercase("hello"))  # HELLO
print(string_utils.to_lowercase("WORLD"))  # world

🔹 実行してみよう!

python main.py

🔹 出力結果

5
5
HELLO
world

✅ これで、パッケージの作成とインポートができました!🎉


4️⃣ __init__.py の役割

__init__.py は、フォルダを「パッケージ」として認識させるための特別なファイルです。

  • Python 3.3 以降では空でも OK
  • パッケージの初期化処理を書ける
  • 一括でモジュールをインポートできる

📌 例えば、utils/__init__.py に以下を記述すると、簡単にアクセスできます。

from .math_utils import add, subtract
from .string_utils import to_uppercase, to_lowercase

すると、main.py は次のようにシンプルになります。

# main.py
from utils import add, subtract, to_uppercase, to_lowercase

print(add(10, 20))  # 30
print(subtract(50, 15))  # 35
print(to_uppercase("python"))  # PYTHON
print(to_lowercase("BLAZOR"))  # blazor

✅ これで、パッケージのモジュールを簡単に使えるようになりました!🎉


5️⃣ from ... import ... の活用

モジュールのインポート方法にはいくつかの種類があります。

インポート方法 使い方
import module_name module_name.function() のように呼び出す
from module_name import function_name function_name() で直接使える
import module_name as alias alias.function() のように短縮名で使える

例えば、

import utils.math_utils as mu

print(mu.add(5, 5))  # 10

✅ まとめ

  • モジュール.py ファイル
  • パッケージ は複数のモジュールを含むフォルダ
  • __init__.py を使うとパッケージを簡単に扱える
  • from ... import ... を活用するとスッキリしたコードが書ける

🏆 次にやること

自分で「utils」パッケージを作成して練習
新しいモジュールを追加して試してみる
__init__.py を活用してみる

Pythonの import の仕組みをマスターして、効率的なコーディングを目指しましょう!🚀✨