首页 > 解决方案 > 在python中选择没有if语句的函数

问题描述

想象一下有 200 个函数,代表 200 种解决问题或计算类似问题的方法

def A():
   ...
   
def B():
   ...
.
.
.

并且该方法将被选择作为输入参数,这意味着用户决定使用哪种方法,在运行程序时将其作为参数,例如函数/方法A的“A”。如何在不检查名称的情况下选择该函数python中的每一个函数。

标签: python-3.xfunctionif-statementuser-input

解决方案


您可以使用字典直接访问您需要的O(1)复杂功能。例如:

def A(x):
   pass

def B(x):
   pass

func_map = {"A": A, "B": B}

假设您将用户输入存储在一个变量chosen_func中,然后选择并运行正确的函数,请执行以下操作:

func_map[chosen_func](x)

例子:

In [1]: def A(x): 
   ...:     return x + x 
 
In [2]: def B(x): 
   ...:     return x * x  

In [3]: func_map = {"A": A, "B": B}

In [4]: func_map["A"](10)
Out[4]: 20

In [5]: func_map["B"](10)
Out[5]: 100

推荐阅读