パイソン 2.7.1
賢明なことのように思える次のことができない理由を理解したい
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']
そのラムダ関数をより単純なものf = lambda map: os.path.exists
にすることはできますが、マップを変更することはできません。誰かがこれを達成する方法を教えてもらえますか? これがまったく不可能な場合、なぜですか?