Я бы определил словарь 'сопоставления' конфигурации, где значение - это функция интерфейса, а ключ - это имя. Что-то вроде:
cls = {
'tbl1': Table1Interface,
'tbl2': Table2Interface,
'tbl3': Table3Interface,
}
cls[name].get_value_from_table()
Изменение доступных интерфейсов - это просто вопрос обновления этого единственного словаря.
Если вы можете определить метод интерфейса из name
(например, name
- это Table1Interface
, а все классы являются атрибутами my_class), тогда вы можете использовать getattr
для доступа к нему:
getattr(my_class, name).get_value_from_table()
Или, если это метод «верхнего уровня», используйте locals
:
locals()[name].get_value_from_table()