most efficient way to selection specific function based on input
本问题已经有最佳答案,请猛点这里访问。
我有一套功能:func1,func2,func3,…函数。根据用户输入,仅使用1个函数,例如,如果用户输入"1",则仅使用func1。到目前为止,我所做的是将这些函数放到一个分支中:
1 2 3 4 5 6 7 8 9 | class FunctionEnsembles: def __init__(self,select_funcion): self.function_to_select=select_function def function_to_use(self): if self.function_to_select=='1': func1... elif self.function_to_select=='2': func2... ... |
显然这是不有效的。当类被实例化时,例如
如何有效地实现这一目标?多谢。
python函数是一流的对象;您可以将它们放在一个列表中:
1 2 | functions = [None, func1, func2, func3, ...] functions[int(self.function_to_select)]() |
或者在字典里:
1 2 3 4 5 6 7 | functions = { 'selection1': func1, 'selection2': func2, 'selection3': func3, } functions[self.function_to_select]() |
如果您的