2017-12-13 7 views
0

변수의 값을 클래스의 객체로 사용하려면 어떻게해야합니까?변수의 값을 객체의 이름으로 사용

나는 'A'라는 클래스가 있고, 내가 어떻게 그렇게

를 만들수 클래스 A

class a(): 
    __init__(self): 

b = "foo" 

에서 개체의 이름이 될 수있는 변수 'B'의 값을 할당 할 수 있도록하려면

b = a() 

foo = a() 

과 같은 것입니까?

+0

을 .... 뭐? 나는 네가 의미하는 것을 이해하지 못한다. 'b = a()'는 * foo = a()와 동일합니다 ... b = foo()를 의미합니까? –

+0

OP는 다른 변수의 값을 따서 명명 한 변수를 만들고 싶습니다. –

답변

4

그런 종류의 작업을 수행하는 데 권장되는 방법은 사전을 사용하는 것입니다. 그래서 같이 : 당신은 말할 나위도 나쁜 관행이지만, 당신이해야하는 경우 무엇을 추구

b = "foo" 
myDictionnary = {} 

myDictionnary[b] = a 

print(myDictionnary["foo"]) 
1

...

이것은 단지 전역에 수행 할 수 있습니다. 당신은 globals() 사전에 새 변수를 추가해야합니다 :

class a: 
    pass 

b = 'foo' 

globals()[b] = a() 

print foo 
# <__main__.a instance at 0x10282d518> 

이 또한 작동 내부 기능 :

class a: 
    pass 

b = 'foo' 

# Be careful with this. As I said, this updates the global scope 
# So "foo" can actually be accessed out of the function. 
# Furthermore, calling this function more than once will yield 
# different results as globals()['foo'] keeps getting overriden 
def some_method(): 
    globals()[b] = a() 
    print foo 
    # <__main__.a instance at 0x10282d5a8> 

some_method() 
+0

'locals()'[does not work] (https://ideone.com/Hv0Xwu)를 수정하고 있습니다. 게시하기 전에 [docs] (https://docs.python.org/3/library/functions.html#locals)를 읽어보십시오. 그것은 답변뿐만 아니라 질문에도 적용됩니다. – user2357112

+0

@ user2357112 당신이 맞습니다. 업데이트 답변 –

관련 문제