Определите заголовок функции внутри файла conf

Я использую словарь / получить конструкцию в качестве переключателя в Python. Это выглядит примерно так:

def switch_function(pluginID, param):
switcher = {
    'someid': somefunction(param),
}
return switch_function.get(pluginID, None)

Тем не менее, я хочу расширить словарь другой парой значений ключа, которая определена в файле conf. Я хочу функцию head в качестве значения. Глава функции должна быть заголовком этой функции, которая должна выполняться в случае переключателя, для определенного плагина. Файл конфигурации будет выглядеть примерно так:

[aSection]
pluginid='anotherid'
functionHead: anotherfunction2

Расширение словаря должно быть простым, но возможно ли отобразить заголовок функции как значение внутри файла conf?

1 ответ

Следующий пример даст вам exec пункт. Ваш dict должно распространяться на что-то вроде этого:

switcher[config["aSection"]["anotherid"])] = func

Затем вам нужно определить func, чтобы он выглядел примерно так:

#CONF
#[aSection]
#pluginid='anotherid'
#functionHead: anotherfunction2

#PYTHON
#config is an instance of a config parser
def func (param):
  exec ("%s(param)" % config["aSection"]["functionHead"])

Это вызовет функцию под названием anotherfunction2 что вы уже определили. Назовите функцию следующим образом:

switcher[config["aSection"]["anotherid"])](param)

Надеюсь это поможет!

Другие вопросы по тегам