मैं प्रत्येक कुंजी के लिए एक स्ट्रिंग के साथ एक शब्दकोश बनाने और प्रत्येक मान के लिए लैम्ब्डा फ़ंक्शन बनाने का प्रयास कर रहा हूं। मुझे यकीन नहीं है कि मैं कहां गलत हो रहा हूं लेकिन मुझे संदेह है कि यह या तो पहली बार एक शब्दकोश में लैम्ब्डा स्टोर करने का मेरा प्रयास है, या तथ्य यह है कि मेरा लैम्ब्डा शॉर्टकट ऑपरेटर का उपयोग कर रहा है।एक शब्दकोश में lambdas को संग्रहीत करना
कोड:
dict = {
'Applied_poison_rating_bonus':
(lambda target, magnitude: target.equipmentPoisonRatingBonus += magnitude)
}
त्रुटि उठाया जा रहा SyntaxError: invalid syntax
है और मेरी +=
पर सही ओर इशारा करते हुए। क्या शॉर्टकट ऑपरेटर को लैम्ब्डा में अनुमति नहीं है, या क्या मैंने सोचा था कि मैंने ट्रैक से भी दूर दूर किया है?
विवेक के लिए, मैं बहुत समान जोड़े के सैकड़ों छोड़ दी हैं (यह सिर्फ एक छोटा शब्दकोश नहीं है।)
संपादित करें:
ऐसा लगता है मेरी समस्या कुछ भी असाइन करने की कोशिश के साथ था एक लैम्ब्डा अभिव्यक्ति के भीतर। हाउवर, हल करने के लिए मेरी समस्या इस प्रकार है कि मैं एक विधि कैसे प्राप्त कर सकता हूं जो केवल इस शब्दकोष की कुंजी को मेरे (टूटे हुए) कोड में परिभाषित फ़ील्ड को बदलने में सक्षम हो?
किसी भी तरह की कॉल eval() मदद करने के लिए?
EDIT_FINAL:
functools.partial() विधि प्रश्न के इस विस्तारित हिस्से के लिए सिफारिश की गई थी, और मेरा मानना है कि यह शोध करने के बाद, मैं इसे अपने समस्या को हल करने के लिए पर्याप्त हैं।
दिलचस्प है, लेकिन अब जो भी मेरे लैम्ब्डा को बुला रहा है उसे उस विशेष क्षेत्र में परिणाम जोड़ने के लिए पता होना चाहिए। उसके चारों ओर किसी भी तरह से? – BlackVegetable
@ ब्लैकवेजटेबल: इसके बजाय एक उचित फ़ंक्शन का उपयोग करें, या 'लक्ष्य' कक्षा में कोई विधि जोड़ें। –
मेरे पास इस शब्दकोश में लगभग 150 (इन) तत्व हैं। इस प्रकार, प्रत्येक शब्दकोश के लिए एक उचित समारोह का उपयोग इस शब्दकोश का उद्देश्य है। हम्म ... – BlackVegetable