Нет ничего невозможного в том, что вы пытаетесь сделать:
class Test(object):
def func1(self, arg):
print 'func1, arg=%s' % arg
def func2(self, arg, **kwargs):
print 'func2, arg=%s, kwargs=%s' % (arg, kwargs)
funcmap = {'func1': func1, 'func2': func2}
def invoke(self, fname, *args, **kwargs):
Test.funcmap[fname](self, *args, **kwargs)
test = Test()
test.invoke('func1', 0)
test.invoke('func2', 42, kw=12)