为简单起见,这是我要执行的操作的简化版本:
def foo(a): # I want to print the value of the variable # the name of which is contained in a
我知道如何在PHP中执行此操作:
function foo($a) { echo $$a; } global $string = "blah"; // might not need to be global but that's irrelevant foo("string"); // prints "blah"
有什么办法吗?
如果是全局变量,则可以执行以下操作:
>>> a = 5 >>> globals()['a'] 5
关于各种“ eval”解决方案的说明:你应谨慎使用eval,特别是如果要评估的字符串来自可能不受信任的来源-否则,你可能最终会删除磁盘的全部内容或类似内容如果给你一个恶意字符串。
(如果它不是全局的,那么你将需要访问其定义在其中的任何名称空间。如果没有它,则无法访问它。)