为了简单起见,这是我想要做的精简版本:
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,特别是当您评估的字符串来自可能不受信任的来源时 - 否则,如果您收到恶意字符串,您最终可能会删除磁盘的全部内容或类似的东西。
(如果它不是全局的,那么您将需要访问它所定义的任何命名空间。如果您没有它,那么您就无法访问它。)