मैं ऑब्जेक्ट्स की सूची पर object.method()
पर कॉल करने का प्रयास कर रहा हूं।ऑब्जेक्ट्स की सूची पर क्लास विधियों को कॉल करने के लिए मानचित्र() का उपयोग कैसे करें
मैं इस की कोशिश की है, लेकिन यह काम करने के लिए नहीं मिल सकता है ठीक से
newList = map(method, objectList)
मैं त्रुटि method is not defined
मिलता है लेकिन मुझे पता है कि है, क्योंकि यह एक वर्ग विधि और नहीं एक स्थानीय कार्य है।
क्या map()
, या इसी तरह के फ़ंक्शन में ऐसा करने का कोई तरीका है? या मुझे जनरेटर/सूची समझ का उपयोग करना होगा?
संपादित करें क्या आप इस सूची की समझ का उपयोग करने के अपने फायदे के फायदे या इसके विपरीत को भी समझ सकते हैं?
newList = [object.method() for object in objectList]
एक छोटी सी अतिरिक्त: 'new_lister = लैम्ब्डा विधि, objectList: मानचित्र (लैम्ब्डा obj: obj.method(), objectList)' आप किसी भी पुराने 'method' और किसी भी पुराने' objectList' उपयोग करने में सक्षम होना चाहते हैं। अब आप 'newList = new_lister (foo_method, list_of_foos) 'आदि कर सकते हैं – 2rs2ts
क्या आप लैम्ब्डा फ़ंक्शन के उपयोग की व्याख्या कर सकते हैं?मैंने सोचा कि मानचित्र सूची के पैरामीटर को फ़ंक्शन के पैरामीटर के रूप में पास करता है। लैम्ब्डा फ़ंक्शन ऑब्जेक्ट्स को पैरामीटर के रूप में कैसे स्वीकार करता है? – Stephan
'lambda obj: obj.method()' के बराबर है: 'def foo (obj): obj.method'। तो 'मानचित्र' वास्तव में सूची के तत्वों को पैरामीटर के रूप में गुजर रहा है। प्रत्येक तत्व को लैम्बडा का पहला तर्क 'ओबीजे' के रूप में पारित किया जाएगा। सही बात? –