在Python中使用字符串作为变量

时间:2014-12-01 08:08:37

标签: python string python-2.7 import casting

似乎不可能使用字符串作为变量的名称。我基本上希望程序能够理解引号内的东西是我想引用的对象的名称。我想做这样的事情:

str = "modname"

import var(str)

var()是一个虚构的函数。我可以使用str()或int()的方式使用它。我想你可能会问"为什么?"它可以做到这样的事情:

class player:
    __init___():
        attributes = [ "hp", "attack", "defense" ]
        for x in range( 0, len(self.attributes) ]:
            self.var(attributes[x]) = var( attributes[x] + "()" )

(假设您已经完成了from stats import *之类的事情)。但真正的回报是能够做到这样的事情:

for x in range( 0, len(self.attributes) ):
    self.var(attributes[x]).modAttr(-5)
    print self.var(attributes[x]).magnitude

这可能吗?想要这样做是完全荒谬的吗?或者是否有不同的,更正常的方式来执行这样的任务?

1 个答案:

答案 0 :(得分:0)

我找到了答案。原来它是基于这样的东西。

class whatever:
    list_of_modules = [ "one", "two", "three" ]
    for l in list_of_modules:
        exec ("self.attr_%s = %s()" % ( l, l ))