0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】Pythonモジュールやスクリプトについて

Posted at

はじめに

今回は、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("さくら")
  1. 自作モジュールも標準モジュールも同じ方法で使える

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
• 複数ファイルを使った開発を始める第一歩として、モジュール化に慣れておくと◎!

まとめ

私自身、モジュールやスクリプトの概念を理解できていなかったので今回の記事を通してより深く理解していきたいと思います。
ここまで読んでいただき、ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?