2013-12-22 2 views
0

Я понял, что функции python тоже являются объектами, и после их определения я сохранил их в словаре, но вопрос в том, как я могу запустить эти хранимые функции в словаре? И могу ли я сохранить эти функции в файле pickle и использовать тему позже в моих кодах? Является ли это возможным? Пример хранения этих функций, но способ запуска темы ... Я не знаю!Запуск функции объекта в python

>>> def a(): 
    print('hello') 
>>> b={'a':a} 
>>> b['a'] 
<function a at 0x00000000033AE620> 
>>> b['a'].run() 

мне нужен какой-то метод, как run для thisfunction или, по крайней мере, посмотреть код функции!

ответ

4

Просто назовите его, как вы бы нормальной функции:

>>> def a(): 
...  print('hello') 
... 
>>> b={'a':a} 
>>> b['a'] 
<function a at 0x02192468> 
>>> b['a']() 
hello 
>>> 

b['a'] возвращает объект функции, поэтому размещение (...) после того, как будет называть его так же, как и любой другой объект функции.

+0

Спасибо, но могу ли я сохранить эти функции в файле pickle без проблем? –

+0

Да; у них есть указатель на ресурс, и это всегда будет тот же самый экземпляр, пока процесс жизни. –

+0

@Allendar Как распечатать сохраненный код? –

Смежные вопросы