python - multiprocessing Pool.map function issue -
मेरे पास एक फ़ंक्शन है, जो एक सूची और पथ लेता है:
def My_function (items_list, निर्देशिका): समानांतर कंप्यूटिंग करने के लिए (उदाहरण के लिए 'a: c: \\ path') विशिष्ट फ़ाइल का उपयोग करके उदाहरण के लिए (वस्तुओं की सूची का विश्लेषण करने की परिणामस्वरूप संख्या) मैटलिप्रेंसिंग मॉड्यूल का उपयोग कर के रूप में अनुसरण करें: multiprocessing आयात से pool def test_func (objs): पूल = पूल (8) परिणाम = pool.map (my_function, objs) रिटर्न (परिणाम) यदि __name __ = = '__ मुख्य__': ऑब्जेक्ट्स = [([ए, बी], 'पाथ 1',), ([सी, डी], 'पाथ 2',), ...] परिणाम = टेस्ट _फंक्ट (ऑब्जेक्ट्स)
लेकिन यह मुझे निम्न त्रुटि देता है: प्रकार त्रुटि: my_function () 1 अपेक्षित स्थितीय तर्क अनुपलब्ध है: 'निर्देशिका'
मैंने ऑब्जेक्ट्स सूची स्वरूप को कई बार बदल दिया है लेकिन यह मुझे देता है एक ही त्रुटि क्या किसी को पता है कि समस्या क्या है? (Python33 का उपयोग करके विंडोज़ 7 पर)
मल्टीप्रोसीसिंग.मैप
अनपैक नहीं होगा आपके ट्यूपल में चर तो myfunction
एक सूची और एक स्ट्रिंग के बजाय एक ट्यूप्ले तर्क प्राप्त कर रहा है।
यदि आप पायथन 3.3+ का उपयोग कर रहे हैं (जो आपको दिखाई देता है), तो आप उपयोग कर सकते हैं, जो ट्यूपल का विस्तार करेगा:
परिणाम = पूल.स्टर्मप (my_function, objs)
यदि आप पायथन 3.2 या उससे कम का उपयोग कर रहे हैं, सबसे आसान बात बनाने के लिए किया जाएगा my_function
एक भी तर्क लेते हैं, और सिर्फ समारोह के मुख्य भाग में टपल का विस्तार करें:
डीईएफ़ my_function (TUP) ITEMS_LIST, निर्देशिका = TUP < / code>
my_function
बदल नहीं सकते हैं, तो एक सहायक समारोह है कि आप के लिए खोल करेंगे जोड़ें:> डीईएफ़ my_function_helper
<कोड ( Tup): my_function (* tup) वापस करें
Comments
Post a Comment