Использование dict для вызова функций из строки - PullRequest
1 голос
/ 02 апреля 2019

Я бы хотел, чтобы первые два слова пользовательской строки ввода были прочитаны как аргументы функции для сохранения строки. Я решил использовать dict вместо многих операторов if, но я не уверен, как структурировать dict.

Я считаю, что это правильный старт:

input: "физика вопроса Что происходит с атомами, когда на них воздействуют фотоны?" результат: программа сохраняет входные данные в вопросах местоположения \ физика

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 Ответ

1 голос
/ 02 апреля 2019

Вам нужно будет определить функции отдельно от словаря

Например:

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

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

затем вы можете вызвать функцию с ее ключевым словом:

function_dict["get_id"]()

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

globals()["get_id"]()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...