我一直在尝试用字符串作为键和lambda函数作为值来创建字典。我不确定我做错了什么,但我怀疑要么是我尝试将lambda存储在字典中的问题,要么就是我的lambda使用了快捷运算符。
代码:
dict = {
'Applied_poison_rating_bonus':
(lambda target, magnitude: target.equipmentPoisonRatingBonus += magnitude)
}
引发的错误是SyntaxError: invalid syntax
,指向我的+=
。lambda表达式中不允许使用快捷操作符吗?或者我离正确的路径还有更远的距离吗?
为了保持理智,我省略了成百上千个非常相似的键值对(这不仅仅是一个小字典)。
编辑:
似乎我的问题在于尝试在lambda表达式中分配任何内容。然而,我的问题是如何让只知道此字典键的方法能够修改我(错误的)代码中定义的该字段?
某种形式的eval()调用会有所帮助吗?
最终编辑:
functools.partial()方法被推荐到了这个问题的扩展部分,经过研究,我相信它足以解决我的问题。