【Python入門】Pythonのexec関数とは?使い方と活用方法を徹底解説(Python 3.11)

Python

はじめに

Pythonには動的にコードを実行できる強力な機能が備わっています。その中でもexec関数は、文字列として記述されたPythonコードを動的に実行するための関数です。本記事では、exec関数の基本的な使い方から、実際の使用例や応用方法について詳しく解説します。

exec関数とは?

exec関数は、Pythonの組み込み関数の一つで、文字列として渡されたPythonコードを実行する機能を持っています。主に動的なスクリプトの実行や、柔軟なプログラムの作成に使用されます。

exec関数の特徴

  • 動的にPythonコードを実行できる
  • 変数の定義や変更が可能
  • 関数やクラスの定義にも利用できる
  • globals()locals()を使用してスコープを制御可能

exec関数の基本構文

Pythonのexec関数は、以下の構文で使用します。

exec(object[, globals[, locals]])
  • object : 実行するPythonコードを文字列またはコードオブジェクトとして指定
  • globals : グローバル変数として使用する辞書(省略可)
  • locals : ローカル変数として使用する辞書(省略可)

exec関数の使用例

基本的な使用例をいくつか紹介します。

例1:文字列として渡したコードを実行

code = """
a = 10
b = 20
print(f'合計: {a + b}')
"""
exec(code)

出力結果:

合計: 30

例2:辞書を使って変数のスコープを制御

global_scope = {}
exec("x = 100", global_scope)
print(global_scope["x"])  # 100

exec関数の応用例

応用例1:動的に関数を定義

code = """
def greet(name):
    return f'こんにちは、{name}さん!'
"""
exec(code)
print(greet("太郎"))  # こんにちは、太郎さん!

応用例2:ユーザー入力を処理(※安全性に注意)

user_code = input("Pythonコードを入力してください: ")
exec(user_code)

exec は悪意のあるコードの実行リスクがあるため、ユーザー入力には慎重に使用する必要があります。

まとめ

本記事では、Pythonのexec関数について、基本構文や具体的な使用例、応用方法について解説しました。exec関数は強力な機能を持っていますが、使用する際はセキュリティリスクに注意が必要です。