python访问变量by name-as-string -inverse eval

时间:2015-02-21 21:14:50

标签: python string variables scope

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

>>> 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

1 个答案:

答案 0 :(得分:2)

这是一种方法:

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

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

>>> a_class.x
2
相关问题