Pythonでプログラムを書く際、避けては通れないimport文。
本記事では、基本的な使い方から実践的なテクニックまで、分かりやすく解説します。
import 文とは
Pythonでは import 文を使用することで、他のファイル内に記載されている module にアクセスできるようになります。
より詳しい説明は公式ドキュメントを参照してください。
この記述にいくつかパターンがあり、理解しておくことが大切です。
VSCodeで簡単に書く方法
元も子もない説明になりますが、Visual Studio Code を使用している場合は、拡張機能の Python を入れて、import が書けていない参照の波線にマウスを合わせて「クイックフィックス」で追記しましょう。
これなら覚えなくても書けますね。
記述パターン
改めて、記述のパターンを下記に示します。
# パターン1: モジュール全体をインポート
import module_name
# パターン2: モジュールに別名をつけてインポート
import module_name as alias_name
# パターン3: モジュールから特定の要素をインポート
from module_name import function_name, class_name
# パターン4: モジュールから全ての要素をインポート(非推奨)
from module_name import *
1. モジュール全体をインポート
最も基本的な方法です。モジュール内の要素にアクセスする際は、モジュール名を前置する必要があります。
import math
result = math.sqrt(16) # → 4.0
2. モジュールに別名をつけてインポート
長いモジュール名を短く省略したい場合や、名前の衝突を避けたい場合に使用します。
import numpy as np
array = np.array([1, 2, 3])
※ numpy は別途インストールが必要な場合があります
3. モジュールから特定の要素をインポート
モジュールの特定の関数やクラスのみを使用する場合に適しています。
from datetime import datetime, timedelta
# 現在の日時を取得
current_time = datetime.now()
print(f"現在時刻: {current_time}") # 例: 現在時刻: 2024-10-28 15:30:45.123456
# 1日後を計算
tomorrow = current_time + timedelta(days=1)
print(f"1日後: {tomorrow}")
4. モジュールから全ての要素をインポート
名前空間が汚染される可能性があるため、通常は推奨されません。
from math import * # 非推奨
result = sqrt(16) # math.を省略できるが、どこから来た関数か分かりにくい
よく使われる標準ライブラリのインポート例
# 日時操作
from datetime import datetime, timedelta
# ファイルパス操作
import os
from pathlib import Path
# 正規表現
import re
# JSONデータの処理
import json
# ランダム値の生成
import random
プロジェクト内の自作モジュールのインポート
プロジェクト構成が以下のような場合を考えます。
my_project/
├── main.py
└── utils/
└── helper.py
main.pyからhelper.pyをインポートする方法は下記です。
from utils.helper import UsefulClass
スタイルガイドに基づくインポートの記述
Pythonの公式スタイルガイド(PEP 8)では、インポート文の記述について以下のように定めています:
- インポートは個別の行に記述する
- インポートは以下の順序で記述し、各グループ間に空行を入れる
- 標準ライブラリ
- サードパーティライブラリ
- ローカルアプリケーションやライブラリのインポート
- インポートはファイルの先頭に配置する(モジュールのコメントや docstring の後)
- ワイルドカードインポート(
from <module> import *
)は避ける
# 標準ライブラリ
import os
from datetime import datetime
# サードパーティライブラリ
import numpy as np
# ローカルアプリケーション
from utils.helper import UsefulClass