首页 > 解决方案 > 函数调用Python的模式匹配参数?

问题描述

我正在编写一个 python 函数,它根据它所采用的参数调用一个函数。它看起来像这样:

def match(parameter):
  if parameter == 'fun1':
    fun1()
  elif parameter == 'fun2':
    fun2()
  elif parameter == 'fun3':
    fun3()

所有被调用的函数都在match函数下面定义。有没有更有效的方法来组织match功​​能?我找不到任何关于函数模式匹配的信息,但是某种数据结构可以工作吗?

谢谢您的帮助。

标签: pythontypespattern-matching

解决方案


您可以创建一个字典来存储函数和调用它的参数值之间的映射。

例如:

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]()


推荐阅读