__import__() 低レベルの import 関数
最終更新:2026-09-22
__import__() 低レベルの import 関数
__import__ は import 文が低レベルで呼び出す関数です;日常的には import 文を使ってください。動的インポートの場面でのみ使用します。
| カテゴリ | 組み込み関数 |
|---|---|
| 種類 | 組み込み関数 |
| Python バージョン | all |
📝 構文
__import__(name, globals=None, locals=None, fromlist=(), level=0)
⚙️ 引数
| name 必須 | The module name (string). |
|---|---|
| globals 任意 | The global namespace dict.(デフォルト値:None) |
| locals 任意 | The local namespace dict.(デフォルト値:None) |
| fromlist 任意 | Names of submodules or attributes to import.(デフォルト値:()) |
| level 任意 | Relative import level; 0 means absolute.(デフォルト値:0) |
戻り値:The top-level module object (not the attributes in fromlist).
💥 例外
ImportError— Raised when the module cannot be found or imported.
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
4.0
⚠️ 警告 信頼できないモジュール名を動的に読み込むとセキュリティリスクがあります;日常的には import を使ってください。
🏷️ 関連する組み込み関数
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Q直接 __import__() を呼ばず import 文を使うのはなぜ?
Aimport 文は名前のバインドや fromlist の意味などの細部を処理します。__import__() は低レベルの実装関数にすぎず、日常のインポートには import を使いましょう。
Q__import__('math') は何を返しますか?
Amath モジュールオブジェクトを返します。ただし返るのはトップレベルモジュールである点に注意してください。import a.b では __import__ は b ではなく a を返します。
Q動的インポートには何を使いますか?
Aimportlib.import_module(name) を優先します。指定したモジュールを返しトップレベルではないため、__import__ より意味が明確です。
Q信頼できないモジュール名を動的インポートするのはリスクがありますか?
Aあります。任意のコードを読み込んで実行する可能性があるためです。モジュール名がユーザー入力に由来する場合は、必ずホワイトリストで厳しく検証してください。