python 按名称作为字符串访问变量 - 反向求值

python access variable by name-as-string -inverse eval

是否有可能以任何方式影响一个可访问的变量,如果唯一给出的是它的字符串名称??

>>> class a_class:
        x = 1
>>> string = 'a_class.x'
>>> eval(string)
1
>>> y = inverse_eval(string)
>>> y = 2 #would imply that a_class.x = 2 from now on

这是一种方法:

>>> c, v = string.split('.')
>>> setattr(locals()[c], v, 2)

我们可以验证它是否有效:

>>> a_class.x
2