namespace = globals()
result = namespace[func_name]()
instance = namespace[class_name](*some_args)
Вы можете использовать собственный словарь (пространство имен) вместо globals
.
Непонятно, зачем вам искусственные ограничения, например, не передавая напрямую объекты функций / классов, не используя getattr()
.