Python モジュール: 作成・インポート・高度な活用
Python モジュール
Pythonモジュールの構築、インポート、管理方法を発見。ベストプラクティス、高度なインポート技法、モジュール検索パスを学びます。
動画: Pythonモジュール
モジュール基礎の詳細チュートリアルを視聴。
Pythonモジュールとは?
モジュールは単純にPython文と定義を含むファイル。例えばexample.pyはexampleという名前のモジュール。モジュールで大きなプログラムを管理しやすく再利用可能なピースに分割。共通関数を一度定義し、必要な場所でインポート。
小さなモジュールを作成してみましょう。以下をexample.pyとして保存:
# example.py – シンプルな加算モジュール
def add(a, b):
"""Return the sum of two numbers."""
return a + b
Pythonでのモジュールインポート方法
importキーワードでモジュールを現在のネームスペースに取り込み。例:
>>> import example
ドット演算子で内容にアクセス:
>>> example.add(4, 5.5)
9.5
Pythonには豊富な標準ライブラリが同梱。すべてのモジュールはPython Standard Libraryで参照可能。
Python import文
# 標準mathモジュールをインポート
import math
print("The value of pi is", math.pi)
The value of pi is 3.141592653589793
リネームしてインポート
# mathを短いエイリアスでインポート
import math as m
print("The value of pi is", m.pi)
リネームでタイプ数削減だが、元の名前(math)は利用不可になることに注意。
Python from…import文
# mathから定数piのみインポート
from math import pi
print("The value of pi is", pi)
複数名を1行でインポート:
from math import pi, e
print(pi, e)
すべての名前をインポート
from math import *
print("The value of pi is", pi)
*使用はネームスペース汚染と由来不明瞭化の恐れがあるため非推奨。
Pythonモジュール検索パス
Pythonがモジュールをインポートするとき、以下を順にチェック:
- カレントディレクトリ。
PYTHONPATH環境変数にリストされたディレクトリ。- Pythonインストール固有のデフォルトディレクトリ。
sys.pathでパスリストを検査:
import sys
print(sys.path)
# ['', 'C:\Python33\Lib\idlelib', 'C:\Windows\system32\python33.zip', ...]
モジュールのリロード
モジュールはインタプリタセッション中1回のみロード。変更したモジュールを再評価するにはimportlib.reload()を使用(impモジュールはPython 3で非推奨)。例:
# my_module.py
print("This code got executed")
>>> import my_module
This code got executed
>>> importlib.reload(my_module)
This code got executed
dir()組み込み関数
dir()でモジュールのすべての属性をリスト:
import example
print(dir(example))
# ['__builtins__', '__cached__', '__doc__', '__file__', '__name__', 'add']
__name__などの特殊属性でモジュールメタデータが判明:
print(example.__name__)
# 'example'
引数なしdir()で現在のネームスペースのすべての名前を表示。
Python
- Python データ型マスター: 実践ガイド
- Python I/Oとモジュールインポート完全マスター: 実践ガイド
- Python 演算子完全マスター: 包括的ガイド
- Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
- Python モジュール: 作成・インポート・高度な活用
- Python辞書完全ガイド:作成、操作、高度なテクニック
- Pythonイテレータ完全ガイド:仕組みと自作方法
- Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
- Python datetimeマスター:日付・時刻・タイムゾーン実践ガイド
- Pythonのtimeモジュールをマスター:関数、構造体、実践例
- Pythonのtime.sleep()をマスター:ベストプラクティス、マルチスレッド、実例