簡體   English   中英

Python-執行(表達式,全局=無,本地=無)

[英]Python - exec(expression, globals=None, locals=None)

我了解eval的基本用法,如Python標准庫中的示例所示:

x = 1
print(eval('x+1'))
2

有人可以提供一些更簡潔的解釋,並舉例說明如何利用全球化和本地化的論點。

如果指定全局局部名稱空間,則它們將用於全局局部變量而不是當前作用域。

>>> x = 1
>>> d = {'x': 9}
>>> exec('x += 1; print(x)', d, d) # x => 9 (not 1)
10

注意:詞典外的x不會受到影響。

>>> x
1
>>> d['x']
10

globalslocals globals允許您定義eval操作范圍,即嘗試評估表達式時應使用哪些變量。 例如:

>>> eval("x * 2", {'x': 5, 'y': 6}, {'x': 4})
8

請注意,在本地全局范圍內使用x時,將使用本地版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM