Python には、コードを動的に実行するための 3 つの強力なツール、eval、exec、compile が用意されています。 。それぞれに特定の目的があり、その違いを理解することが重要です。
Eval は、単一の式を評価するために使用されます。式を表す文字列を受け取り、その値を返します。例:
a = 5 result = eval('a + 10') print(result) # Output: 15
Exec は、コードのブロックを実行するために使用されます。コードを表す文字列を受け取り、None を返します。例:
my_code = """ for i in range(5): print(i) """ exec(my_code) # Output: # 0 # 1 # 2 # 3 # 4
Compile は、コードをバイトコードにコンパイルするために使用され、インタプリタで実行できます。コードを表す文字列とモード ('eval'、'exec'、または 'single') を受け取ります。
'eval' モードでは、compile は単一の式をバイトコードにコンパイルし、式の値を返します。 「exec」モードでは、コードのブロックをバイトコードにコンパイルし、None を返します。 「シングル」モードでは、単一のステートメントまたは式をバイトコードにコンパイルし、式の値の再現を出力します。
例:
bytecode = compile('a + 10', 'my_code', 'eval') result = eval(bytecode) print(result) # Output: 15 bytecode = compile(""" for i in range(5): print(i) """, 'my_code', 'exec') exec(bytecode) # Output: # 0 # 1 # 2 # 3 # 4
Function | What it does |
---|---|
eval | Evaluates a single expression |
exec | Executes a block of code |
compile | Compiles code into bytecode |
以上がPython の `eval`、`exec`、および `compile` 関数の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。