लघु जवाब:
yield from
coroutine के लिए इंतजार करने के लिए एक पुराने तरीका है।
await
कोरआउट के लिए प्रतीक्षा करने का एक आधुनिक तरीका है।
विस्तृत जवाब:
अजगर जनरेटर है - कार्यों का विशेष प्रकार का है कि एक ही मान के बजाय परिणामों के एक दृश्य पैदा करता है। पायथन 3.3 yield from
अभिव्यक्ति के साथ शुरू किया गया था। यह allows एक जनरेटर अपने ऑपरेशन के हिस्से को किसी अन्य जनरेटर को सौंपने के लिए।
पायथन 3.4 asyncio
मॉड्यूल मानक पुस्तकालय में जोड़ा गया था। यह हमें स्पष्ट और समझने योग्य असीमित कोड लिखने की अनुमति देता है। तकनीकी रूप से एसिंसिओ के कोरआउट को विभिन्न तरीकों से लागू किया जा सकता है, asyncio
में उन्हें जनरेटर का उपयोग करके कार्यान्वित किया गया था (आप excellent video के लिए देख सकते हैं जहां दिखाया गया है कि जेनरेटर को कोरआउट को लागू करने के लिए कैसे उपयोग किया जा सकता है)। @asyncio.coroutine
जेनरेटर से कोरआउटिन बनाने का एक तरीका था और yield from
कोरआउट के लिए प्रतीक्षा करने का एक तरीका था - केवल कार्यान्वयन का विवरण।
ऐसा हुआ कि yield from
दो "अलग-अलग चीज़ों" के लिए उपयोग करना शुरू हुआ।
पायथन 3.5 से शुरू (देखें PEP 492) कोरआउट को नया वाक्यविन्यास मिला। अब आप async def
के साथ कोरआउट को परिभाषित कर सकते हैं और await
अभिव्यक्ति का उपयोग करके इसके लिए प्रतीक्षा कर सकते हैं। यह केवल लिखने के लिए छोटा नहीं है, बल्कि यह समझने में भी स्पष्ट करता है कि हम कोरआउट के साथ काम करते हैं।
यदि आप पाइथन 3.5+ का उपयोग कर रहे हैं तो आप जेनरेटर को छोड़कर yield from
का उपयोग करके भूल सकते हैं और await
को कोरआउट के लिए उपयोग कर सकते हैं।
स्रोत
2017-05-31 00:26:18
ऐसा लगता है कि आपके द्वारा लिंक किया गया दूसरा प्रश्न यह है कि 'async' और' await' का उपयोग कैसे किया जा सकता है, जिसे आप 'उपज' और 'asyncio.coroutine से उपज की आवश्यकता के बारे में अधिक संक्षेप में व्यक्त करने के लिए उपयोग कर सकते हैं। व्यक्त करने के लिए। मुझे लगता है कि मुझे सच में यकीन नहीं है कि सवाल क्या पूछ रहा है क्योंकि उस उदाहरण से यह बहुत अच्छी तरह से समझा जाता है। क्या आप अधिक विशिष्ट हो सकते हैं? – mgilson
@mgilson यह 'प्रतीक्षा' से 'उपज' से संबंधित है, लेकिन वास्तव में '0 से उत्पन्न नहीं' – Atsch
वे वही हैं, 'प्रतीक्षा' और अधिक [हालिया] को छोड़कर (https: //www.python। संगठन/देव/पेप्स/पेप-04 9 2 /) और बहुत बेहतर दिखता है – Vincent