【Python入門】モジュールとは?徹底解説する



【Python入門】モジュールとは?徹底解説する

知らず知らずの内に使っている Python のモジュール。
今回は、Pythonを使う上で欠かせない「モジュール」についてご紹介させて頂きます。

目次
  1. 【Python入門】モジュールとは?徹底解説する
  2. モジュールとは?
  3. モジュールがあるとき・ないとき
  4. モジュールのユースケースと使い方
  5. モジュールとライブラリの違い
  6. モジュールは自分で作れる
  7. モジュールを使いこなすために必要なこと
  8. まとめ

【Python入門】モジュールとは?徹底解説する

モジュールとは?

image

モジュール(module)とは、ある一定の処理を行うプログラム定義が入っているファイルのことをいいます。import csvimport os など見られたことはありませんか?これはモジュールを使う時のコードですね。

モジュールを使う 1番の理由としては、プログラムの作成が手っ取り早いからでしょう。本当は複雑なプログラム処理を書かないと実行できないことも、モジュールに用意されている機能(関数)を使うことで簡単に実行処理可能。例えば CSV モジュールの読み込み機能。

CSVの読み込みをモジュール無しで書くと長くなりますが、モジュールを使うことで csv.reader() で機能の準備が完了。とにかく充実した機能を手っ取り早く使うことができるんですね。

image

モジュールを使う際は、コードの文頭に from ファイル名 import モジュール名 もしくは import モジュール名 を記述。例えば、import csvfrom my_module import hello

ある程度 Python に触れたことのある方なら見たことある光景と思います。

モジュールがあるとき・ないとき

image

学習初期は、Python に標準セットされている csvsys などのモジュールを使う機会が多いと思います。それとは別にモジュールは、自分でセットすることも可能。以下に自分でモジュールをセットして、モジュールを使った場合と使わなかった場合を比較してみます。まずはテキストエディタの場合。

image

モジュールを使った方がコードがすっきりして見えますね。ただし、モジュールファイルを別途用意する手間があります。

次にコマンド上でモジュールがある時とない時を比較。

image

コマンド上で Python を実行する場合、モジュールがあると記述量が減らせ、タイプミスによるエラーが少なくなりますので便利です。 このようにプログラムを管理する上でも、モジュールの知識があるといろいろと便利な様子が確認できます。Pythonプログラマーとしてモジュールについて知っておきたいですね。

モジュールのユースケースと使い方

image

まずモジュールのユースケースを確認。

  • バージョンチェックしたい時(import sys)
  • csvファイルを扱いたい時(import csv)
  • 正規表現を使いたい時(import re)
  • 時間を扱いたい時(import time)
  • いろいろ演算したい時(import math や random)
  • デバグしたい時(python -m pdb ○○.py)

等など、Python とモジュールは切っても切れない関係であることが確認できます。次にモジュールの使い方。

-- パターン① --

Pythonコード内でモジュールを読み込み。

import csv


-- パターン② --

コマンドライン上でモジュールの読み込み。

python -m pdb ●●.py

一般的には import csv などのコード内でモジュールを読み込む方が一般的でしょう。

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

image

ちょっと Python を学習されている方なら、モジュールの他に「ライブラリ」や「パッケージ」という言葉を聞いたり使ったりしたことのある方も。 どれも from ○○ import ●● と使う時の書き方が同じなので混同しやすいですよね。「モジュール」と「ライブラリ」と「パッケージ」の違いは、『機能の規模』とイメージしておくといいと思います。

  • モジュールは単一ファイルで構成
  • ライブラリは複数のファイルから構成
  • パッケージは、ライブラリやモジュールなども含む複数のファイルから構成

言葉の意味の厳密な定義は無いようですが、雰囲気を知っておくとプログラム開発時に役立つでしょう。

モジュールは自分で作れる

image

Pythonの学習がてらモジュールを自作してみませんか?自分で作ってみることでよりモジュールの働きを理解できると思います。

** --step1--**

今回は、イメージしやすいようにモジュール化する前の元のコードを用意。

元コード test.py

name = 'おおしま'
level = '一般客'
item = 'たこ焼き'

def hello(name):
  print('毎度おおきに ' + name + ' さん')

def user(level):
    print('あなたは' + level + 'ですね。')

def push(item):
    print('本日は' + item + 'がオススメです。')

hello(name)
user(level)
push(item)

--step2--

モジュールファイルを用意。

def hello(name): → test_hello.py

def user(level): → test_user.py

def push(item): → test_push.py

--step3--

各モジュールファイルにコード記述。

■test_hello.py■

def hello(name):
    print('毎度おおきに ' + name + ' さん')


■test_user.py■

def user(level):
    print('あなたは' + level + 'ですね。')


■test_push.py■

def push(item):
    print('本日は' + item + 'がオススメです。')


--step4--

メインファイルの作成

■test_main.py■

from test_hello import hello
from test_user import user
from test_push import push

name = 'おおしま'
level = '一般客'
item = 'たこ焼き'

hello(name)
user(level)
push(item)

実行結果

image

モジュールを使いこなすために必要なこと

image

Pythonのモジュール、最初の内はコピペで問題ないと思いますが、ゲームや数値計算のサンプルコードを探してきたり自分で開発しだすと、より本格的な知識が必要となるでしょう。

例えば、コピペして実行したらエラー、という具合。デバグを行う中でモジュールの書き方で困ることも出てきます。そんな時、「ハマらない」ようにするためにも以下のようなことを知っておくといいでしょう。

  • 引数について
  • 関数について
  • オブジェクト指向について
  • ドキュメント・ページ(モジュールの説明ページ)の読み慣れ
  • その他 Python の基本文法

まとめ

機械学習やWebアプリを開発する際は、どちらかというとライブラリの使用機会が多いと思います。そしてライブラリを使用する際、モジュールの知識があると捗ります。そしてそのモジュールを理解するには、Python 基礎知識が欠かせません。

Python の基礎学習、「ちゃんとやってないわ」「独学で不安やわ」という方、 CodeCampを使ってみませんか?オンラインのプログラミングスクール CodeCamp ならマンツーマンで効率的に学習を進められると思いますよ。

オシママサラ
この記事を書いた人
オシママサラ
\ 無料体験開催中!/自分のペースで確実に習得!
オンライン・プログラミングレッスンNo.1のCodeCamp