モジュール
Pythonコードを整理・再利用するための仕組み。
モジュールのインポート
なぜモジュールが必要か?
モジュールは、コードを整理・再利用するのに適しています。大規模なプロジェクトでは、コードをモジュールに分割することで、可読性・保守性を向上できます。
いつ使うか?
- コードを整理・再利用する場合
- 大規模なプロジェクトを開発する場合
- 標準機能を使用する場合
- 外部ライブラリを使用する場合
実践テクニック
インポートの方法を使い分ける
モジュール全体をインポートする`import module`、特定の関数をインポートする`from module import function`、エイリアスでインポートする`from module import function as alias`の3つの方法を使い分けます。
名前の競合を回避する
エイリアスを使うことで、名前の競合を回避できます。特に、複数のモジュールから同じ名前の関数をインポートする場合に有効です。
# モジュールのインポートimport mathfrom math import sqrtfrom math import sqrt as square_root
# モジュール全体をインポートprint(math.sqrt(16)) # 4.0
# 特定の関数をインポートprint(sqrt(16)) # 4.0
# エイリアスでインポートprint(square_root(16)) # 4.0カスタムモジュール
なぜカスタムモジュールが必要か?
カスタムモジュールは、自分のコードを整理・再利用するのに適しています。よく使う機能をモジュールに分割することで、コードの重複を回避できます。
いつ使うか?
- コードを整理・再利用する場合
- よく使う機能をモジュールに分割する場合
- プロジェクトを複数のファイルに分割する場合
実践テクニック
モジュール名を適切に命名する
モジュール名は、小文字で、アンダースコアで区切ります。これはPythonのPEP 8規約に従うためです。
モジュールのドキュメントを書く
モジュールのドキュメントを書くことで、他の人が使いやすくなります。特に、docstringを使って関数の説明を書くことが推奨されます。
# カスタムモジュールの作成# my_module.py
def greet(name): return f"Hello, {name}!"
def calculate_area(length, width): return length * width
# 使用例import my_module
print(my_module.greet("Alice")) # Hello, Alice!print(my_module.calculate_area(5, 3)) # 15パッケージ
なぜパッケージが必要か?
パッケージは、関連するモジュールを整理・再利用するのに適しています。大規模なプロジェクトでは、モジュールをパッケージに分割することで、可読性・保守性を向上できます。
いつ使うか?
- 関連するモジュールを整理・再利用する場合
- 大規模なプロジェクトを開発する場合
- サブパッケージを作成する場合
実践テクニック
__init__.pyを理解する
`__init__.py`は、ディレクトリをPythonパッケージとして認識させるためのファイルです。このファイルは空でも構いませんが、初期化コードを書くこともできます。
相対インポートを使う
パッケージ内でモジュールをインポートする場合、相対インポートを使うことで、コードの可読性を向上できます。`from . import module`のように使用します。
# パッケージの構造# my_package/# ├── __init__.py# ├── module1.py# ├── module2.py# └── subpackage/# ├── __init__.py# └── module3.py
# 使用例from my_package import module1, module2from my_package.subpackage import module3組み込みモジュール
なぜ組み込みモジュールが必要か?
組み込みモジュールは、標準機能を利用するのに適しています。追加のインストールなしで、すぐに使用できます。特に、よく使う機能(数学、日時、ファイル操作など)が提供されています。
いつ使うか?
- 標準機能を利用する場合
- 追加のインストールを避けたい場合
- よく使う機能(数学、日時、ファイル操作など)を使用する場合
実践テクニック
よく使うモジュールを覚える
よく使うモジュール(math、random、datetime、json、osなど)を覚えることで、開発効率を向上できます。
モジュールのドキュメントを読む
モジュールのドキュメントを読むことで、正しい使い方を理解できます。Python公式ドキュメント(https://docs.python.org/)が推奨されます。
# 組み込みモジュールの使用import randomimport datetimeimport jsonimport os
# ランダム数print(random.randint(1, 10))
# 日時print(datetime.datetime.now())
# JSONdata = {"name": "Alice", "age": 30}print(json.dumps(data))
# ファイルパスprint(os.getcwd())合格ライン
演習課題
参考文献
この記事は以下の公的ガイドライン/標準に基づいています。
- Python Modules - 公式ドキュメント
- The import system - 公式ドキュメント
- PEP 8 -- Style Guide for Python Code - PEP 8