python - 函数调用Python的模式匹配参数?
问题描述
我正在编写一个 python 函数,它根据它所采用的参数调用一个函数。它看起来像这样:
def match(parameter):
if parameter == 'fun1':
fun1()
elif parameter == 'fun2':
fun2()
elif parameter == 'fun3':
fun3()
所有被调用的函数都在match
函数下面定义。有没有更有效的方法来组织match
功能?我找不到任何关于函数模式匹配的信息,但是某种数据结构可以工作吗?
谢谢您的帮助。
解决方案
您可以创建一个字典来存储函数和调用它的参数值之间的映射。
例如:
def fun1():
print("I am fun1")
def fun2():
print("I am fun2")
funcs_mapping = {"fun1":fun1, "fun2":fun2}
def match(parameter):
if parameter in funcs_mapping:
funcs_mapping[parameter]()
推荐阅读
- spring-boot - 尝试模块化 Gradle SpringBoot 项目,但在尝试构建时出现“错误:找不到符号”?
- snmp - 如何修复:-- snmpget:“加载共享库时出错:libcrypto.so.4:无法打开共享对象文件:没有这样的文件或目录
- python - 如何在 Django 上修复“没有这样的表:PurchaseHistory_purchasehistory”/为什么没有什么要迁移的?
- ipv6 - 如何使用 SNMP 将 IPv4 和 IPv6 地址映射到接口?
- angular - 将视频文件上传到 Firebase 存储
- git - 我如何更新我要向其中提交拉取请求的主节点(以及为什么会发生这种情况)?
- r - 将函数应用于列表列表中的一系列项目
- react-native - 我无法在 AsyncStorage 中存储数据。它只是显示为 [object Object]
- ruby-on-rails - 找不到路线 Rails 5.2.3
- animation - ScrollView 中的动画不起作用?使用 Xcode 11 测试版 6