python-3.x - 在python中选择没有if语句的函数
问题描述
想象一下有 200 个函数,代表 200 种解决问题或计算类似问题的方法
def A():
...
def B():
...
.
.
.
并且该方法将被选择作为输入参数,这意味着用户决定使用哪种方法,在运行程序时将其作为参数,例如函数/方法A的“A”。如何在不检查名称的情况下选择该函数python中的每一个函数。
解决方案
您可以使用字典直接访问您需要的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
推荐阅读
- node.js - 节点 - async.map 是如何工作的?
- java - JPA @Convert 时间戳问题
- c - 将 [CONST][] 数组传递给 C 函数?
- unity3d - AssetBundle (DLC) 数据在运行时加载到 Android 手机 [UNITY]
- c# - 安装在其他 PC 上时,C# WPF 应用程序(使用实体框架)在访问本地数据库时崩溃
- java - 如何以编程方式查找分片 MongoDB 集群中的分片数量
- angular - 在 ubuntu 16.4.5 中以 Angular 5 安装角材料(错误:“ElementRef”类型不是通用的。)
- python - Travis CI Python 在 osx 上构建失败 - “未安装 2.7”
- ssl - How to use private key and public key with chain in a mutual ssl authentication
- android - How should I set the scaleType of an ImageView, when I use Glide