如何减少由许多条件语句组成的函数?

Luk*_*uke 2 python python-3.x

我正在使用一个包含多个条件语句的函数,类似于下面所示的函数:

def apply_function(column, function):
  if function == 'function_1':
    return function_1(column)
  
  elif function == 'function_2':
    return function_2(column)
  
  elif function == 'function_3':
    return function_3(column)
  
  elif function == 'function_4':
    return function_4(column)
  
  elif function == 'function_5':
    return function_5(column)
...
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以减少条件语句的数量并以更Pythonic的方式实现函数并增强性能?

请指教。

U10*_*ard 7

创建一个字典并从字符串函数名的键中获取函数:

def apply_function(column, function):
    dct = {'function_1': function_1, 'function_2': function_2, 'function_3': function_3
           'function_4': function_4, 'function_5': function_5}
    return dct[function](column)
Run Code Online (Sandbox Code Playgroud)

或者使用globals

def apply_function(column, function):
    return globals()[function](column)
Run Code Online (Sandbox Code Playgroud)