我一直在试图用每个键的字符串和每个值的lambda函数创建一个字典。我不确定我要去哪里但是我怀疑它是要么我第一次在字典中存储lambda的尝试,或者是我的lambda使用的是快捷操作符。在字典中存储lambdas
代码:
dict = {
'Applied_poison_rating_bonus':
(lambda target, magnitude: target.equipmentPoisonRatingBonus += magnitude)
}
所引发的错误是SyntaxError: invalid syntax
和我+=
指向右侧的。 lambda表达式中不允许快捷操作符,还是比我想象的更偏离轨道?
对于理智的缘故,我省略了数百个非常相似的对(这是不是只是一个很小的字典。)
编辑:
看来我的问题是,试图分配什么在lambda表达式内的。无论如何,我的问题是要解决的问题是如何才能获得一种方法,只知道该字典的关键字能够改变我的(破碎的)代码中定义的字段?
对eval()的某种调用方式有帮助吗?
EDIT_FINAL:
的functools.partial()方法被推荐到问题的这个扩展部分,我相信研究之后,我会发现它足以解决我的问题。
有趣的,但现在无论是调用我的lambda,需要知道将结果添加到该特定字段。有什么办法呢? – BlackVegetable
@BlackVegetable:改为使用正确的函数,或者向'target'类中添加一个方法。 –
我在这本词典中有大约150个这些(相似)元素。因此,为每一个使用适当的功能都会破坏这本词典的用途。嗯... – BlackVegetable