繁体   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