我一直在試圖用每個鍵的字符串和每個值的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