Day 15:モジュールという「部品」を理解する
Day 15では、Pythonの「モジュール」という仕組みを使って、コードを部品化・再利用する考え方を学んでいきます。 import・from・自作モジュール・__name__・__main__ をステップバイステップでかみ砕きながら、初心者の方でも迷わないように解説していきます。
モジュールとは何か
モジュールとは、「Pythonコードをまとめたファイル」であり、他のファイルから読み込んで使える“部品”のことです。 例えば、math や random などは、Pythonに最初から用意されている標準モジュールです。
import math # mathモジュールを読み込みます
# mathモジュールの関数を使う例
print(math.sqrt(16)) # 16の平方根 → 4.0
print(math.pi) # 円周率
Pythonここでのポイントは、
import モジュール名で、そのモジュール全体を読み込むモジュール名.関数名の形で中の機能を使う
という基本パターンです。
import と from の違いを押さえる
import の基本形
import は「モジュール全体を読み込む」書き方です。
import random
# randomモジュールの関数を使う例
print(random.randint(1, 6)) # 1〜6のランダムな整数
Pythonこの場合、random という名前の下にすべての機能がぶら下がります。
from … import … の基本形
from は、「モジュールの中から特定の機能だけを直接名前として読み込む」書き方です。
from random import randint
# randint を直接使えるようになります
print(randint(1, 6))
Pythonここでの違いは、
import random→random.randint(...)のように「モジュール名.関数名」で呼ぶfrom random import randint→randint(...)と、モジュール名なしで呼べる
という点です。
複数の機能を読み込みたい場合は、カンマで区切ります。
from math import sqrt, pi
print(sqrt(25)) # 5.0
print(pi) # 3.14159...
Python自作モジュールを作ってみる
ここからがDay 15の本題です。 「自分で書いたPythonファイルをモジュールとして使う」流れを体験していきます。
ステップ1:モジュール用のファイルを作る
まず、utils.py というファイルを作り、よく使いそうな関数を入れておきます。
# utils.py
# 便利関数をまとめた自作モジュールです。
def greet(name):
"""名前付きで挨拶する関数です。"""
print(f"こんにちは、{name}さん!")
def add(a, b):
"""2つの数値を足し算する関数です。"""
return a + b
Pythonここでは、
greet()とadd()という2つの関数を定義しています。- このファイル自体が「utilsモジュール」になります。
ステップ2:別ファイルから自作モジュールを使う
次に、main.py というファイルを作り、utils モジュールを読み込んで使います。
# main.py
# 自作モジュール utils を使う側のファイルです。
import utils # 同じフォルダにある utils.py を読み込みます
# utilsモジュールの関数を使います
utils.greet("太郎")
result = utils.add(3, 5)
print(f"足し算の結果は {result} です。")
Pythonここでのポイントは、
utils.pyとmain.pyを同じフォルダに置くimport utilsで「自作モジュール」を読み込めるutils.関数名の形で中の関数を呼び出せる
という流れです。
from を使って自作モジュールを読み込む
from を使うと、関数を直接名前として読み込めます。
# main.py
from utils import greet, add # utilsから特定の関数だけ読み込みます
greet("花子")
print(add(10, 20))
Pythonこのように、import と from は自作モジュールでも同じように使えます。
name と main の意味
ここからは、少しだけ「Pythonの裏側」に踏み込みます。 __name__ と __main__ は、「そのファイルがどのように実行されているか」を知るための仕組みです。
name とは何か
Pythonの各ファイル(モジュール)には、自動的に __name__ という変数が用意されています。
- そのファイルが「直接実行された場合」 →
__name__は"__main__"になります。 - そのファイルが「他のファイルから import された場合」 →
__name__は「モジュール名」になります(例:"utils")。
これを利用すると、「このファイルが直接実行されたときだけ動かしたいコード」を書けます。
if name == “main“: の意味
よく見るこの書き方は、
if __name__ == "__main__":
# ここに書いたコードは「直接実行されたときだけ」動きます
Pythonという意味です。
自作モジュール utils.py に組み込んでみましょう。
# utils.py
def greet(name):
print(f"こんにちは、{name}さん!")
def add(a, b):
return a + b
if __name__ == "__main__":
# このブロックは「utils.pyを直接実行したときだけ」動きます。
# importされたときには実行されません。
print("utilsモジュールのテストを実行します。")
greet("テストユーザー")
print(add(2, 3))
Pythonこの構造のメリットは、
utils.pyを「モジュール」として他のファイルからimportしたときには、テストコードが勝手に動かないutils.pyを単体で実行したときには、簡単な動作確認(テスト)ができる
という点です。
モジュール構成のミニテンプレート
最後に、Day 15の要素をすべて含んだミニテンプレートを示します。
utils.py(自作モジュール)
# utils.py
# 便利関数をまとめた自作モジュールです。
def greet(name):
"""名前付きで挨拶する関数です。"""
print(f"こんにちは、{name}さん!")
def add(a, b):
"""2つの数値を足し算する関数です。"""
return a + b
def multiply(a, b):
"""2つの数値を掛け算する関数です。"""
return a * b
if __name__ == "__main__":
# このブロックは utils.py を直接実行したときだけ動きます。
print("utilsモジュールの簡易テストを実行します。")
greet("テストユーザー")
print("add(2, 3) =", add(2, 3))
print("multiply(4, 5) =", multiply(4, 5))
Pythonmain.py(アプリ本体)
# main.py
# utilsモジュールを使う側のファイルです。
from utils import greet, add, multiply # 自作モジュールから関数を読み込みます
def main():
"""メイン処理をまとめた関数です。"""
print("=== モジュール練習アプリ ===")
name = input("あなたの名前を入力してください: ")
greet(name)
x = int(input("1つ目の数字を入力してください: "))
y = int(input("2つ目の数字を入力してください: "))
print(f"{x} + {y} = {add(x, y)}")
print(f"{x} * {y} = {multiply(x, y)}")
if __name__ == "__main__":
# main.py が直接実行されたときだけ main() を呼びます。
main()
Pythonこの2ファイル構成で、
- 自作モジュールの作り方
importとfromの使い方__name__と__main__による「直接実行か、importか」の判定- テストコードと本番コードを分ける書き方
をまとめて体験できます。
Day 15のまとめ
Day 15では、モジュールを通して、
- 「Pythonファイル=モジュール」という考え方
importとfrom ... import ...の違いと使い分け- 自作モジュールを作り、別ファイルから読み込んで使う流れ
__name__と__main__を使って、「直接実行されたときだけ動くコード」を書くパターン
をステップバイステップで見てきました。
ここまで来ると、「1つの大きなファイルに全部書く」のではなく、「役割ごとにファイルを分けて、モジュールとして組み合わせる」という感覚が少し育っているはずです。 この感覚は、今後の実践Python編でより大きなアプリケーションを作っていくうえで、欠かせない土台になっていきます。

