【问题标题】:Calling a certain function based on a variable [duplicate]基于变量调用某个函数[重复]
【发布时间】:2021-01-26 21:28:45
【问题描述】:

我正在尝试根据某个变量调用某些函数。如果我有很多基于这个变量的函数,那么所有的 if 语句很快就会变得非常难看。我的问题是,是否有比下面的代码更优雅和“pythonic”的解决方案?

if variable == 0:
    function_0()
elif variable == 1:
    function_1()
elif variable == 2:
    function_2()

【问题讨论】:

  • 测试是否总是相等?例如,您是否需要测试variable > 5 之类的内容?

标签: python


【解决方案1】:

创建一个函数数组,用变量索引并调用函数。

[function_0, function_1, function_2][variable]()

或者通过字典来做

dd = {0 : function_0, 1 : function_1, 2 : function_2}
dd[variable]()

【讨论】:

    【解决方案2】:

    你可以用字典

    fmap = {0: f1, 1: f2, 2: f3}
    fmap[variable]() 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-25
      • 2013-02-06
      • 2021-02-26
      • 2020-07-27
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      相关资源
      最近更新 更多