multithreading - python Returning data from a threaded def -


मेरे पास कुछ कोड है जो कि एक .MP3 फ़ाइल का शीर्षक मिलता है

  def GetTitle (fileName): print "getTitle" audio = MP3 (fileName) कोशिश: sTitle = str (ऑडियो ["TIT2"]) को छोड़कर KeyError: sTitle = os.path.basename (fileName) sTitle = replace_all (sTitle) #remove विशेष   

मैं इस समारोह को

  sTitle = getTitle ("SomeSong.mp3") के साथ कॉल करूंगा   

एक अन्य समस्या को हल करने के लिए मैं इसे अपने ही धागे पर अंडे देना चाहता था इसलिए मैंने

  threadTitle = थ्रेड (लक्ष्य = getTitle ("SomeSong.mp3")) threadTitle.start ()   

यह सही ढंग से फ़ंक्शन कॉल करता है और मेरी दूसरी समस्या को हल करता है, लेकिन अब मुझे पता नहीं है कि फ़ंक्शन से मेन में sTitle का रिटर्न वैल्यू कैसे प्राप्त किया जाए।

मैं एक नया ऑब्जेक्ट बनाऊँगा जो कि थ्रेड का विस्तार करता है ताकि आप किसी भी समय इसे प्राप्त कर सकें। <पूर्व> थ्रेडिन से जी आयात धागा वर्ग GetTitleThread (थ्रेड): def __init __ (self, fileName): self.sTitle = कोई भी self.fileName = fileName सुपर (GetTitleThread, self) .__ init __ () def रन (स्वयं): print "getTitle" audio = MP3 (Self.fileName) कोशिश: self.sTitle = str (ऑडियो ["TIT2"]) को छोड़कर KeyError: self.sTitle = os.path.basename (self.fileName) self.sTitle = replace_all (self.sTitle) #remove विशेष Chars अगर __name__ == '__main__': t = GetTitleThread ('SomeSong.mp3') टी। स्टार्ट () t.join () print t.sTitle

Comments