ホームページ  >  記事  >  バックエンド開発  >  Python での exec と eval の使用例

Python での exec と eval の使用例

WBOY
WBOYオリジナル
2016-06-16 08:41:541023ブラウズ

動的 Python コードは、JavaScript の eval 関数と同様に、exec を通じて実行できます。また、Python の eval 関数は、Python 式を計算して結果を返すことができます (exec は結果を返しません。print(eval("...") ) なしを出力します) ;

コードをコピーします コードは次のとおりです:

>>> exec("print("hello, world")")
こんにちは、世界

>>>a = 1
>>> exec("a = 2")
>>>
2

スコープ (名前空間、スコープ) の概念は次のとおりです。現在のスコープを破壊しないように、exec を実行するための新しいスコープ (ディクショナリ) を作成できます (JavaScript にはこの機能がありません)。

コードをコピー コードは次のとおりです:
>>> スコープ = {}
>>> exec("a = 4", スコープ)
>>>
2
>>> スコープ['a']
4

>>> スコープ.keys()
dict_keys(['a', '__builtins__'])

__builtins__ にはすべての組み込み関数と値が含まれます。

通常の {} には __builtins__ は含まれません


コードをコピー コードは次のとおりです:
>>> a = {}
>>> a.keys()
dict_keys([])

exec と同様に、eval も名前空間を使用できます:

コードをコピー コードは次のとおりです:
>>> 結果 = eval('2+3')
>>> 結果
5
>>> スコープ={}
>>> スコープ['a'] = 3
>>> スコープ['b'] = 4
>>> 結果 = eval('a+b',scope)
>>> 結果
7

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。