小能豆

如何根据字符串中的名称获取变量的值?

javascript

为了简单起见,这是我想要做的精简版本:

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"

有什么办法吗?


阅读 33

收藏
2024-07-02

共1个答案

小能豆

如果它是一个全局变量,那么您可以执行以下操作:

>>> a = 5
>>> globals()['a']
5

关于各种“eval”解决方案的说明:您应该小心使用 eval,特别是当您评估的字符串来自可能不受信任的来源时 - 否则,如果您收到恶意字符串,您最终可能会删除磁盘的全部内容或类似的东西。

(如果它不是全局的,那么您将需要访问它所定义的任何命名空间。如果您没有它,那么您就无法访问它。)

2024-07-02