変数を文字列に設定し、その変数を使用して、その変数と同じ名前のクラスから関数を呼び出す方法はありますか?
例えば:
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()
これを機能させる方法はありますか?