目次
はじめに
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
関数は強力な機能を持っていますが、使用する際はセキュリティリスクに注意が必要です。