Определите заголовок функции внутри файла 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)
Надеюсь это поможет!