[英]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
globals
和locals
globals
允许您定义eval
操作范围,即尝试评估表达式时应使用哪些变量。 例如:
>>> eval("x * 2", {'x': 5, 'y': 6}, {'x': 4})
8
请注意,在本地和全局范围内使用x
时,将使用本地版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.