减少条件的数量

2024-10-01 22:42:28 发布

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

我在函数中有一长串条件:

if x == "a":
    return function_a()
elif "b" in x:
    return function_b()
elif x == "c string":
    return function_c()
elif x == "d string":
    return function_d()
else:
    function_e()

我如何简化它,从而降低功能的认知复杂性


Tags: 函数in功能stringreturniffunction条件
2条回答

这是我的看法:

def function_a():
  return 'a'

def function_b():
  return 'b'

def function_c():
  return 'c'

def function_d():
  return 'd'

def function_e():
  print('e')

x = 'b'

L = {
  'a': function_a(),
  'c string': function_c(),
  'd string': function_d()
}

def reduced():
  try:
    L[x]()
  except KeyError:
    if 'b' in x:
      return function_b()
    else:
      function_e()

print(reduced())

如果有人能改进它

你可以这样做:

def function_a():
    print("First function")
    
def function_b():
    print("Second function")
    
x = 'b'
fns = {'a': function_a, 'b': function_b}
fns[x]()

Python没有switch语句,所以一个常见的替代方法是使用字典来“选择”使用哪个选项。在本例中,期望的值a,b,c,d...是字典中的键,相应的函数是该键的值

要执行正确的函数,只需使用返回函数的fns[x]访问字典,然后使用()括号调用函数

相关问题 更多 >

    热门问题