Python eval() 関数
説明
eval()この関数は文字列式を実行し、式の値を返します。
文字列式変数、関数呼び出し、演算子、その他の Python 構文要素を含めることができます。
構文
以下は eval() メソッドの構文です:
eval(expression[, globals[, locals]])
パラメータ
- expression -- 式。
- globals -- 変数のスコープ、グローバル名前空間。指定する場合は、辞書オブジェクトでなければなりません。
- locals -- 変数のスコープ、ローカル名前空間。指定する場合は、任意のマッピングオブジェクトにすることができます。
eval() 関数は文字列 expression を Python 式として解析し、指定された名前空間でそれを実行します。
戻り値
eval() 関数は文字列を対応するオブジェクトに変換し、式の結果を返します。
例
以下は eval() メソッドを使用した例です:
例 1
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
例 2
# 簡単な数式を実行
result = eval("2 + 3 * 4")
print(result) # 出力: 14
# 変数の参照を実行
x = 10
result = eval("x + 5")
print(result) # 出力: 15
# 指定された名前空間で式を実行
namespace = {'a': 2, 'b': 3}
result = eval("a + b", namespace)
print(result) # 出力: 5
result = eval("2 + 3 * 4")
print(result) # 出力: 14
# 変数の参照を実行
x = 10
result = eval("x + 5")
print(result) # 出力: 15
# 指定された名前空間で式を実行
namespace = {'a': 2, 'b': 3}
result = eval("a + b", namespace)
print(result) # 出力: 5
その他の拡張機能注意:eval() 関数が実行するコードには潜在的なセキュリティリスクがあります。信頼できない文字列を式として使用すると、コードインジェクションの脆弱性が発生する可能性があります。そのため、eval() 関数は慎重に使用し、信頼できる文字列式のみを実行するようにしてください。