是否有可能以任何方式影响可访问的变量,如果给出的唯一的东西是它的名字作为字符串?
>>> 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
答案 0 :(得分:2)
这是一种方法:
>>> c, v = string.split('.')
>>> setattr(locals()[c], v, 2)
我们可以验证它是否有效:
>>> a_class.x
2