Я хочу вызвать функцию из словаря. Является ли это возможным? И если да, то как мне это сделать?Вызов функции из словаря
def function():
pass
my_dic = {
'hello': function()
}
Я хочу вызвать функцию из словаря. Является ли это возможным? И если да, то как мне это сделать?Вызов функции из словаря
def function():
pass
my_dic = {
'hello': function()
}
Из того, что я понимаю, что вы на самом деле имеете в виду, как сохранить ссылку функцию внутри словаря, чтобы быть в состоянии назвать его позже, после получения его из словаря по ключу. Это возможно, поскольку функции first class objects в Python:
>>> def function():
... print("Hello World")
...
>>> d = {
... 'hello': function # NOTE: we are not calling the function here - just keeping the reference
... }
>>> d['hello']()
Hello World
Соответствующие нити с некоторыми образцами использования:
Да, это возможно. Как и другие типы, функции могут храниться в словаре. Проблема в вашем коде заключается в том, что вы сохраняете возвращаемое значение функции (то есть None
в этом случае), а не сама функция.
Снимите скобку ()
, и вы должны быть хорошо идти:
>>> my_dic = {
... 'hello': function
... }
>>> my_dic['hello']()
None
Пожалуйста, попробуйте выполнить код и дайте нам знать, если у вас есть какие-то конкретные вопросы. – thefourtheye
Это уже ответит здесь: http://stackoverflow.com/questions/3061/calling-a-function-of-a-module-from-a-string-with-the-functions-name-in-python – larslars