exec() コードブロックを実行する

最終更新:2026-09-22

exec() コードブロックを実行する

exec() は文字列中の Python コード(文またはコードブロック)を実行し、値を返さない。

カテゴリ組み込み関数
種類組み込み関数
Python バージョンall

📝 構文

exec(code[, globals[, locals]])

⚙️ 引数

code 必須Code to execute: a string, bytes, or code object.
globals 任意The global namespace dict.(デフォルト値:None)
locals 任意The local namespace dict.(デフォルト値:None)

戻り値:None; statements in the code take effect in the caller.

💥 例外

▶ 例

下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:

実行結果:

6
y = 6
さらに多くのケースは近日公開予定です。

❓ よくある質問

Qexec('y = 1') の後、y を直接使えますか?
Aモジュールのトップレベルでは使えます。ただし関数の内部では使えません。exec 内の代入は関数のローカル変数には書き込まれません。安全な方法は exec(code, ns) を使い、後で ns 辞書から読み出すことです。
Qexec() に戻り値はありますか?
Aありません。常に None を返します。実行結果は名前空間辞書から読み取ります。例:exec('y = x * 2', ns) の後、ns['y'] で取得します。
Qexec() と eval() はいつ使い分けますか?
A複数行の文の実行や関数の定義には exec を、単一の式の評価には eval を使います。両者のセキュリティ警告は同じです——信頼できない入力を実行してはいけません。
Qexec の globals 引数はどう使いますか?
Aexec(code, {'x': 3}) のようにすると、コードを指定した名前空間の中だけで実行し、外部環境を汚染しません。実行環境を分離する一般的な手法です。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%