2012-09-25 5 views
1

".txt"목록이 있습니다. 내가하고 싶은 일은이 트리거 목록에 액세스하고 트리거 이름을 결정한 다음 해당 이름을 사용하여 내가 가지고있는 클래스의 새 인스턴스를 가리키는 것입니다 (WordTrigger). 나는 그 일을 어떻게 할 것인지 잘 모른다. 변수를 알고 있다면 간단히 클래스를 var = WordTrigger(parameters)을 통해 변수에 할당 할 수 있습니다. 그러나 문제의 전제는 변수를 모르고 목록을 스캔하여 이름을 알아 내야한다는 것입니다. 나는 내 WordTrigger 클래스에 대해 name 속성을 만들 수 있다는 것을 알았지 만, 이론적으로는 트리거의 목록이 얼마나 오래인지 알지 못하기 때문에 클래스 인스턴스를 할당 할 변수에 대한 문제가 여전히 남아 있습니다. 그래서 정적 변수를 만들 수는 없습니다.클래스를 가리키는 변수의 이름을 동적으로 지정

x 개의 변수를 만들고 단어 목록에서 추출한 이름으로 클래스의 새 인스턴스를 가리키는 단어 목록 x 개의 숫자가 길면 어떤 방법이 있습니까? 나는 그것이 의미가 있기를 바랍니다.

+3

. 그들이 알고 있다면, 어떻게? – martineau

답변

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

dict이 올바른 방법 인 이유에 대한 설명은 [이 기사] (http://nedbatchelder.com/blog/201112/keep_data_out_of_your_variable_names.html)를 참조하십시오. –

관련 문제