使用字典从字符串中调用函数

时间:2019-04-02 20:38:26

标签: python string dictionary key-value dispatch

我希望将用户输入字符串的前两个单词作为保存字符串位置的函数参数读取。我已经决定使用字典而不是许多if语句,但是我不确定如何构造该字典。

我相信这是一个正确的开始:

输入:“问题物理学当原子被光子撞击时会发生什么?” 结果:程序将输入保存到位置问题\物理

raw_entry = input("Enter text in the following format: type subtype text")
instructions = raw_entry.split()[:2]

这两个词(在示例中每个词都是“ get_id”)将指定将文本保存在何处。这个例子似乎是我要寻找的,但是我不确定如何针对我的情况进行更改。

function_dict = {'get_id': 
                        (
                        # function
                        requests.get,

                        # tuple of arguments
                        (url + "/users/" + user,), 

                        # dict of keyword args
                        {'headers': self.headers}
                        )
                 }

让我知道我是在逻辑上还是在没有意义。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要将功能与字典分开定义

例如:

def get_id():
    ... the function's code ...

function_dict = { "get_id":get_id, ... }

然后可以使用其关键字调用该函数:

function_dict["get_id"]()

但是如果关键字与函数名称相同,您也可以不使用字典来完成此操作:

globals()["get_id"]()