您可以将函数更改为 不 接受任何参数吗?然后从本地/??全局变量中查找变量,您可以在其中提供exec
:
>>> def spam():
... print "spam and", eggs
...
>>> exec(spam.__code__, {'eggs':'pasta'})
spam and pasta
(为什么不将整个函数作为字符串发送?Pickle "def spam(eggs): print 'spam and', eggs"
,而exec
字符串(经过验证)在另一侧。)