如何使用变量的值作为类中的对象?
e.g。我有一个名为' a'的课程,我希望能够分配一个变量的值' b'成为类a
中对象的名称class a():
__init__(self):
b = "foo"
我怎样才能这样做
b = a()
与
相同foo = a()
答案 0 :(得分:4)
这种做事的推荐方法是使用词典。像这样:
b = "foo"
myDictionnary = {}
myDictionnary[b] = a
print(myDictionnary["foo"])
答案 1 :(得分: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()