변수의 값을 클래스의 객체로 사용하려면 어떻게해야합니까?변수의 값을 객체의 이름으로 사용
나는 'A'라는 클래스가 있고, 내가 어떻게 그렇게
를 만들수 클래스 Aclass a():
__init__(self):
b = "foo"
에서 개체의 이름이 될 수있는 변수 'B'의 값을 할당 할 수 있도록하려면
b = a()
는
foo = a()
과 같은 것입니까?
변수의 값을 클래스의 객체로 사용하려면 어떻게해야합니까?변수의 값을 객체의 이름으로 사용
나는 'A'라는 클래스가 있고, 내가 어떻게 그렇게
를 만들수 클래스 Aclass a():
__init__(self):
b = "foo"
에서 개체의 이름이 될 수있는 변수 'B'의 값을 할당 할 수 있도록하려면
b = a()
는
foo = a()
과 같은 것입니까?
그런 종류의 작업을 수행하는 데 권장되는 방법은 사전을 사용하는 것입니다. 그래서 같이 : 당신은 말할 나위도 나쁜 관행이지만, 당신이해야하는 경우 무엇을 추구
b = "foo"
myDictionnary = {}
myDictionnary[b] = a
print(myDictionnary["foo"])
...
이것은 단지 전역에 수행 할 수 있습니다. 당신은 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()
'locals()'[does not work] (https://ideone.com/Hv0Xwu)를 수정하고 있습니다. 게시하기 전에 [docs] (https://docs.python.org/3/library/functions.html#locals)를 읽어보십시오. 그것은 답변뿐만 아니라 질문에도 적용됩니다. – user2357112
@ user2357112 당신이 맞습니다. 업데이트 답변 –
을 .... 뭐? 나는 네가 의미하는 것을 이해하지 못한다. 'b = a()'는 * foo = a()와 동일합니다 ... b = foo()를 의미합니까? –
OP는 다른 변수의 값을 따서 명명 한 변수를 만들고 싶습니다. –