如何在Python中有效地切换函数?

2024-04-26 11:48:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个python代码

def bigFunction(x, function = 'smallFunctionA'):
  if function == 'smallFunctionA':
    return a(x)
  elif function == 'smallFunctionB':
    return b(x)
  ...

这可以很好地工作,但是代码变得非常冗余,因为它变得越来越长,要么在需要使用smallFunction时使用if语句,要么为每个smallFunction复制bigFunction的整个主体。 有没有办法让这个过程更简短,更少冗余?我找不到关键词了。你知道吗


Tags: 代码returnif过程deffunction语句关键词
2条回答

不确定其用途,但可以使用将函数名与函数对象映射的字典:

def bigFunction(x, function = 'smallFunctionA'):
    map = {'smallFunctionA': a,
           'smallFunctionB': b}
    return map[function](x)

这个怎么样:

def bigFunction(x, function):
    return function(x)

并传递实际函数(而不是字符串形式的函数名)。你知道吗

相关问题 更多 >