Pythonの関数説明 exec()

exec() は、Pythonの組み込み関数の1つで、文字列として表現されたPythonコードを実行するために使用されます。
eval() 関数とは異なり、
exec() はコードブロック全体を実行し、評価結果を返さない点が異なります。通常、
exec() を使用してPythonスクリプトを動的に生成し、実行することができます。

exec() 関数の基本的な構文は以下の通りです:

python
exec(object[, globals[, locals]])
  • object: 実行したいPythonコードを表す文字列、バイトコード、またはコードオブジェクト。
  • globals (オプション): グローバル変数を指定するディクショナリ。省略可能で、通常は
    None を指定します。指定した場合、実行中にグローバル変数を操作できます。
  • locals (オプション): ローカル変数を指定するディクショナリ。省略可能で、通常は
    None を指定します。指定した場合、実行中にローカル変数を操作できます。

以下は
exec() 関数の例です:

python
x = 10
y = 20
code = """
z = x + y
print(z)
"""
exec(code)  # code内のPythonコードを実行

この例では、
exec() を使用して文字列
code に格納されたPythonコードを実行し、変数
z の値を計算して表示しています。

exec() 関数の主な特徴と注意点:

  • コードの実行:
    exec() は文字列として与えられたPythonコードを実行します。コード内での計算や操作は行われますが、結果は返されません。

  • 強力な機能:
    exec() は強力な機能を持つため、慎重に使用する必要があります。特に、信頼性のないデータから入力を受け取る場合や、セキュリティ上のリスクがある場合には使用しない方が安全です。

  • グローバルとローカル:
    globals および
    locals パラメータを使用することで、実行中にアクセスできる変数のスコープを制御できます。

exec() 関数は、Pythonスクリプトを動的に生成し、実行する場合や、動的なコードの生成や変更が必要な場面で使用されます。ただし、慎重に使用し、セキュリティ上のリスクを考慮することが重要です。