Параметры сопоставления шаблона с вызовами функций Python? - PullRequest
1 голос
/ 10 апреля 2020

Я пишу python функцию, которая вызывает функцию на основе параметра, который она принимает. Это выглядит примерно так:

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

Все эти вызываемые функции определяются ниже функции match. Есть ли более эффективный способ организовать функцию match? Я не могу найти ничего о сопоставлении с шаблоном с функциями, но может ли какая-то структура данных работать?

Спасибо за помощь.

1 Ответ

2 голосов
/ 10 апреля 2020

Вы можете создать словарь, в котором будет отображаться отображение между функцией и значением параметра для ее вызова.

Например:

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

...