コンテンツにスキップ

Pythonでeval関数を利用する方法を簡単に解説

[

Python eval(): Pythonの式を動的に評価する

Pythonのeval()は、文字列ベースまたはコンパイルコードベースの入力から任意のPython式を評価することができます。この関数は、文字列またはコンパイルされたコードオブジェクトとして提供される入力からPython式を動的に評価したい場合に便利です。

ただし、Pythonのeval()は非常に役立つツールですが、使用する前に重要なセキュリティ上の考慮事項があります。このチュートリアルでは、eval()の動作方法と、Pythonプログラムで安全かつ効果的に使用する方法について学びます。

このチュートリアルでは次の内容を学びます:

  • Pythonのeval()の仕組み
  • eval()を使用して、文字列ベースまたはコンパイルコードベースの任意の入力を動的に評価する方法
  • eval()がコードを不安全にする可能性があるセキュリティ上のリスクを最小化する方法

さらに、Pythonのeval()を使用して、数式を対話的に評価するアプリケーションを作成する方法も学びます。この例では、eval()について学んだ知識を実際の問題に応用します。このアプリケーションのコードを入手したい場合は、以下のボックスをクリックしてください。

Pythonのeval()の理解

組み込みのPython関数であるeval()を使用すると、文字列ベースまたはコンパイルコードベースの入力から式を動的に評価することができます。eval()に文字列を渡すと、関数はそれを解析し、バイトコードにコンパイルし、Pythonの式として評価します。しかし、コンパイルされたコードオブジェクトをeval()で呼び出すと、関数は評価ステップのみを実行します。これは、同じ入力で複数回eval()を呼び出す場合に非常に便利です。

Pythonのeval()のシグネチャは次のように定義されています。

Python

eval(expression[, globals[, locals]])

この関数は、expressionという名前の最初の引数を受け取ります。また、eval()には2つのオプションの引数があります。

  1. globals
  2. locals

次の3つのセクションでは、これらの引数が何であり、eval()がこれらを使用してPythonの式を実行する方法について学んでいきます。

Pythonのeval()の理解

組み込みのPython関数であるeval()を使用すると、文字列ベースまたはコンパイルコードベースの入力から式を動的に評価することができます。eval()に文字列を渡すと、関数はそれを解析し、バイトコードにコンパイルし、Pythonの式として評価します。しかし、コンパイルされたコードオブジェクトをeval()で呼び出すと、関数は評価ステップのみを実行します。これは、同じ入力で複数回eval()を呼び出す場合に非常に便利です。

Pythonのeval()のシグネチャは次のように定義されています:

Python

eval(expression[, globals[, locals]])

この関数は、最初の引数としてexpressionを受け取ります。また、eval()には2つのオプションの引数があります:

  1. globals
  2. locals

次の3つのセクションでは、これらの引数が何であり、eval()がこれらを使用してPythonの式を実行する方法について学んでいきます。