こんにちは!今回は Pythonの実行モデル について、初心者向けに ハンズオン形式 で解説していきます。
「__name__ == "__main__"
って何?」
「モジュールとスクリプトの違いは?」
「パッケージってどう作るの?」
こんな疑問を解決しながら、実際にコードを書いて理解を深めていきましょう!💡
🎯 学習のゴール
✅ Pythonプログラムの基本構造を理解する
✅ __main__
の役割を知る
✅ モジュール・スクリプト・パッケージ の違いを把握する
✅ 名前空間とスコープ を体験する
1️⃣ Pythonプログラムの基本構造を理解しよう
Pythonのプログラムは、大きく次の3つに分類されます。
種類 | 説明 |
---|---|
モジュール (Module) | .py ファイル(他のプログラムからインポートできる) |
スクリプト (Script) | コマンドラインから直接実行するPythonプログラム |
パッケージ (Package) | モジュールをまとめたフォルダ |
まずは、シンプルなPythonスクリプトを作成してみましょう!
📝 練習1: シンプルなスクリプトを作る
次のコードを hello.py
という名前で保存してください。
print("Hello, Python!")
ターミナル(またはコマンドプロンプト)で次のコマンドを実行しましょう。
python hello.py
✅ 実行結果
Hello, Python!
これでPythonスクリプトを実行できました!🎉
2️⃣ __name__ と __main__ の役割
Pythonでは、ファイルが スクリプトとして実行される場合 と モジュールとしてインポートされる場合 で動作が変わります。
📝 練習2: __name__
の動作を確認する
次のコードを script.py
という名前で保存してください。
def greet():
print("Hello from script.py!")
if __name__ == "__main__":
print("このファイルはスクリプトとして実行されました")
greet()
ターミナルで次のように実行してみましょう。
python script.py
✅ 実行結果
このファイルはスクリプトとして実行されました
Hello from script.py!
次に、script.py
を モジュールとしてインポート してみます。
import script
print("import script 完了!")
ターミナルで実行:
python -c "import script"
✅ 実行結果
import script 完了!
"このファイルはスクリプトとして実行されました"
は出てきません。
これは、__name__
が "__main__"
ではなく "script"
になるためです。
3️⃣ モジュールを作ってみよう
📝 練習3: 自作モジュールを作る
次のコードを mymodule.py
という名前で保存します。
def add(a, b):
return a + b
次に、main.py
を作成し、mymodule
をインポートして使ってみましょう。
import mymodule
result = mymodule.add(3, 5)
print(f"3 + 5 = {result}")
ターミナルで実行:
python main.py
✅ 実行結果
3 + 5 = 8
4️⃣ 名前空間とスコープを理解しよう
📝 練習4: グローバル変数とローカル変数の違い
次のコードを scope.py
に保存しましょう。
x = 10 # グローバル変数
def my_function():
x = 5 # ローカル変数
print("関数内の x:", x)
my_function()
print("関数外の x:", x)
実行してみましょう。
python scope.py
✅ 実行結果
関数内の x: 5
関数外の x: 10
関数内で x
を変更しても、グローバル変数には影響を与えないことがわかります。
5️⃣ パッケージを作ってみよう
Pythonのパッケージは、フォルダ内に __init__.py
を作成することで定義されます。
📝 練習5: パッケージを作る
次のフォルダ構成を作成します。
mypackage/
__init__.py
module1.py
module2.py
main.py
mypackage/module1.py
def say_hello():
return "Hello from module1!"
mypackage/module2.py
def say_goodbye():
return "Goodbye from module2!"
mypackage/__init__.py
from .module1 import say_hello
from .module2 import say_goodbye
main.py
import mypackage
print(mypackage.say_hello())
print(mypackage.say_goodbye())
ターミナルで実行:
python main.py
✅ 実行結果
Hello from module1!
Goodbye from module2!
これで パッケージを作成・利用する方法 が理解できました!💡
✅ まとめ
🎯 今回学んだこと
✅ Pythonのプログラムは スクリプト、モジュール、パッケージ に分類される
✅ __name__ == "__main__"
を使うことで、スクリプトとモジュールの動作を分けられる
✅ 名前空間とスコープ を理解すれば、変数の影響範囲を制御しやすくなる
✅ パッケージ を作ることで、大規模なプロジェクトも整理しやすくなる
Pythonの実行モデルをしっかり理解して、スクリプトやモジュールをうまく活用していきましょう!🚀
次回は 「クラスとオブジェクト」 について解説予定です!お楽しみに!😊