基礎から学ぶPython入門 90日コース | 実践Python - Day 15:モジュール

90日で身につけるPython
スポンサーリンク
スポンサーリンク

Day 15:モジュールという「部品」を理解する

Day 15では、Pythonの「モジュール」という仕組みを使って、コードを部品化・再利用する考え方を学んでいきます。 importfrom・自作モジュール・__name____main__ をステップバイステップでかみ砕きながら、初心者の方でも迷わないように解説していきます。

モジュールとは何か

モジュールとは、「Pythonコードをまとめたファイル」であり、他のファイルから読み込んで使える“部品”のことです。 例えば、mathrandom などは、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 randomrandom.randint(...) のように「モジュール名.関数名」で呼ぶ
  • from random import randintrandint(...) と、モジュール名なしで呼べる

という点です。

複数の機能を読み込みたい場合は、カンマで区切ります。

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.pymain.py を同じフォルダに置く
  • import utils で「自作モジュール」を読み込める
  • utils.関数名 の形で中の関数を呼び出せる

という流れです。

from を使って自作モジュールを読み込む

from を使うと、関数を直接名前として読み込めます。

# main.py

from utils import greet, add  # utilsから特定の関数だけ読み込みます

greet("花子")
print(add(10, 20))
Python

このように、importfrom は自作モジュールでも同じように使えます。

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))
Python

main.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ファイル構成で、

  • 自作モジュールの作り方
  • importfrom の使い方
  • __name____main__ による「直接実行か、importか」の判定
  • テストコードと本番コードを分ける書き方

をまとめて体験できます。

Day 15のまとめ

Day 15では、モジュールを通して、

  • 「Pythonファイル=モジュール」という考え方
  • importfrom ... import ... の違いと使い分け
  • 自作モジュールを作り、別ファイルから読み込んで使う流れ
  • __name____main__ を使って、「直接実行されたときだけ動くコード」を書くパターン

をステップバイステップで見てきました。

ここまで来ると、「1つの大きなファイルに全部書く」のではなく、「役割ごとにファイルを分けて、モジュールとして組み合わせる」という感覚が少し育っているはずです。 この感覚は、今後の実践Python編でより大きなアプリケーションを作っていくうえで、欠かせない土台になっていきます。

タイトルとURLをコピーしました