动态命名指向类的变量

时间:2012-09-25 21:17:09

标签: python

所以我有一个.txt的“触发器”列表。我想要做的是访问此触发器列表,确定触发器名称,然后使用该名称指向我所拥有的类的新实例,将其命名为WordTrigger。我不知道我会怎么做。如果我知道变量,我可以简单地通过var = WordTrigger(parameters)将类分配给变量。但问题的全部前提是我不知道变量,必须通过扫描列表找出它们的名字。我意识到我可以为我的name类创建一个WordTrigger属性,但这仍然留下了我将分配类实例的变量的问题,因为理论上我甚至都没有知道触发器列表有多长,所以我不能只创建静态数量的变量。

有没有办法,给定x个字长列表,创建x个变量并将它们指向一个新的类实例,其名称是从wordlist中提取的?我希望这是有道理的。

1 个答案:

答案 0 :(得分:4)

使用字典:

dic={word:WordTrigger(parameters) for word in wordlist}

示例:

>>> wordlist=['a','b','c','d','e']
>>> class A:
    def __init__(self,i):
        self.ind=i


>>> dic={word:A(i) for i,word in enumerate(wordlist)}
>>> dic['a'].ind
0
>>> dic['c'].ind
2