2012-11-06 2 views
1

원하는 이름이 다른 곳에 만들어진 변수에 저장되어있는 클래스 객체를 인스턴스화하려고합니다.Python - var 값이있는 클래스의 인스턴스 이름 지정

클래스의 인스턴스를 변수가 보유한 이름으로 만드는 방법을 알 수 없습니다.

예 :

class foo: 
    def __init__(self): 
     self.var1 = "bar" 

if __name__ == "__main__": 
    test = "a" # returned by another func. 
    [string held by variable 'test'] = foo() 
    print a.var1 

이 가능합니까? (심지어 추천 할 만하다.)

답변

2

런타임까지 이름이 알려지지 않으면 변수 a으로 프로그램하기가 어렵 기 때문에 바람직하지 않습니다.

당신은 대신 딕셔너리를 사용하는 방법에 대한 생각

:

data = {} 
test = func() # "a" 
data[test] = foo() 
+0

다음 클래스 기능을 사용하여 다음에 무엇을하고 싶은지에 대해 생각하면서 그 문제에 봉착했습니다. 다시 생각할 시간. 고맙습니다. –

0

함수는 아마 더 나은 - 당신이해야 할 일이 캡슐화되어 재사용 할 수있는 방법 :

def do_work(an_instance_of_foo): 
    print an_instance_of_foo.var1 

class foo: 
    def __init__(self): 
     self.var1 = "bar" 

if __name__ == "__main__": 
    do_work(foo()) 

당신이 dicti를 사용할 수

def do_work(an_instance_of_foo, my_word): 
    # etc. 

다른 방법 : 당신은 또한 말을해야하는 경우에는 함수에 전달할 수 있습니다 foo의 인스턴스를 특정 이름과 연관시켜야하는 경우 (예 : @unutbu가 제안한) 네임 스페이스로 onary를 사용하십시오.

관련 문제