はじめに
今回は、Pythonの「モジュール」と「スクリプト」を改めて学び直し
・スクリプトとモジュールってどう違うの?
・import
って何をしてるの?
・ファイルを分けるメリットってあるの?
という疑問を備忘録も兼ねて解説します。
スクリプトとは?
簡単に言えば…
スクリプト = Pythonのプログラムファイル(
.py
ファイル)
スクリプトは、Pythonのコードが書かれたファイルで、直接実行できるのが特徴です。
例:
# hello.py
print("こんにちは、Python!")
ターミナルやコマンドプロンプトで実行できます。
python hello.py
モジュールとは?
簡単に言えば…
モジュール = 他のスクリプトから「import
」して使えるPythonファイルです。
モジュールも.pyファイル
ですが、主に再利用を目的として使われます。
utils.py
def greet(name):
print(f"こんにちは、{name}さん!")
このutils.py
を、別のスクリプトから使ってみます。
# main.py
import utils
utils.greet("たろう")
:実行結果
こんにちは、たろうさん!
どうしてモジュールを使うの?
1. コードを分けて整理できる
1つのファイルに全部書くと、読みづらく・修正しにくく・再利用もしづらい。
モジュールに分ければ、関数やクラスを他のファイルから簡単に使い回せます。
2. 必要な処理だけ読み込める
モジュールを作ることで、必要な処理だけを import
して使えるようになります。
from utils import greet
greet("さくら")
- 自作モジュールも標準モジュールも同じ方法で使える
Pythonには最初から用意された便利な「標準モジュール」もあります。
import math
print(math.sqrt(16)) # 4.0
自作モジュールもこのmath
のようにimport
で使える、というのがポイントです!
モジュールの中でも実行できるコードを書くには?
よく使われるテクニックがこちら:
# utils.py
def greet(name):
print(f"こんにちは、{name}さん!")
if __name__ == "__main__":
greet("直接実行されました")
なにこれ?と思ったら…
• このコードは、utils.py
を直接実行したときだけ動きます
• main.py
など他のファイルから import
されたときは動きません。
これは「モジュールとしてもスクリプトとしても使える」ようにするPythonの定番スタイルです。
用語 | ざっくり言うと… |
---|---|
スクリプト | そのまま実行するPythonプログラム |
モジュール | 他のファイルからimportして使う部品集 |
.pyファイル
はどちらにもなれる(__name__ == "__main__"
を使うと便利)
• 自作の関数や処理をモジュール化すると、再利用しやすく、コードもきれいになる
おまけ:モジュールの管理Tips
• モジュールは同じディレクトリにあるファイルをimport
するときに使える
• Pythonのバージョンが3.3以降なら、サブフォルダに__init__.py
がなくてもOK
• 複数ファイルを使った開発を始める第一歩として、モジュール化に慣れておくと◎!
まとめ
私自身、モジュールやスクリプトの概念を理解できていなかったので今回の記事を通してより深く理解していきたいと思います。
ここまで読んでいただき、ありがとうございました。