1
的Python 2.7.1如何lambda函数内执行任务
我想明白,为什么我不能做这似乎是一个明智的做法
def do_stuff():
# return a function which takes a map as an argument and puts a key in there
f = lambda map: map['x'] = 'y' #compilation error
return f
x = do_stuff()
map = {}
x(map)
print map['x']
我可以在以下有lambda函数是有点简单的东西像f = lambda map: os.path.exists
但我不能让它来改变地图。有人能告诉我如何实现这一目标吗?如果这是不可能的,为什么?
其实这是酷! – 2013-03-11 15:53:41
或'map .__ setitem __('x','y')' – newacct 2013-03-11 20:33:45
@newacct:是的,但它直接使用特殊的钩子方法;更好地使用API方法。 :-) – 2013-03-11 20:34:56