有没有办法将变量设置为字符串,然后使用该变量从与该变量同名的类中调用函数?
例如:
class Foo(object):
def printer(self):
print "Hello."
Bar = Foo()
var = 'Bar'
然后,当我尝试调用 var.printer() 时,出现错误:
AttributeError: 'str' object has no attribute 'printer'
这是有道理的,但是有没有办法通过使用与类同名的变量以这种方式调用类函数?
我想这样做的原因是我可以拥有一组单独的变量,能够调整这些变量,然后将它们组合成一个字符串并从与字符串同名的类中调用一个函数。例如:
from random import randint
x = 0
y = 0
class c00(object):
def printname(self):
print "c00"
class c01(object):
def printname(self):
print "c01"
choose_class = randint(0, 2)
if choose_class == 0:
xstr = str(x)
ystr = str(y)
string = 'c' + xstr + ystr
string.printname()
else:
y += 1
xstr = str(x)
ystr = str(y)
string = 'c' + xstr + ystr
string.printname()
有什么办法可以使这项工作?