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