पायथन 3.8 में असाइनमेंट एक्सप्रेशन को समझना
पायथन 3.8 के बाद से, "वालरस" ऑपरेटर (:=) ने भाषा में असाइनमेंट एक्सप्रेशन पेश किया है। यह नई सुविधा प्रोग्रामर को समझ और लैम्ब्डा फ़ंक्शन के भीतर मान निर्दिष्ट करने की अनुमति देती है, जो पहले नियमित असाइनमेंट तक ही सीमित थे। उन परिदृश्यों में कुशल कोड जहां पारंपरिक असाइनमेंट समर्थित नहीं हैं। उदाहरण के लिए, असाइनमेंट अभिव्यक्तियाँ सुविधा प्रदान करती हैं:
सशर्त मूल्य अधिग्रहण
: सशर्त मूल्यों को अधिक संक्षेप में प्राप्त किया जा सकता है, जैसा कि पायथन दस्तावेज़ में प्रदान किए गए इंटरैक्टिव डिबगिंग उदाहरण द्वारा प्रदर्शित किया गया है।
- सरलीकृत सूची समझ: समझ के भीतर चर के लिए मध्यवर्ती मान निर्दिष्ट करके जटिल सूची समझ को सरल बनाया जा सकता है, जिससे कोड अधिक पठनीय और प्रबंधनीय हो जाता है।
- सिंटैक्स, शब्दार्थ, और व्याकरण
असाइनमेंट अभिव्यक्ति एक विशिष्ट वाक्यविन्यास का पालन करती है: नाम: = expr, जहां नाम एक पहचानकर्ता है और expr कोई वैध पायथन अभिव्यक्ति है। असाइनमेंट एक्सप्रेशन का मान एक्सप्रेशन एक्सप्रेशन के समान है, लेकिन एक अतिरिक्त साइड इफेक्ट लक्ष्य नाम के लिए मान निर्दिष्ट करता है।
असाइनमेंट एक्सप्रेशन कई प्रमुख पहलुओं में नियमित असाइनमेंट स्टेटमेंट से भिन्न होते हैं:
वे अभिव्यक्ति हैं, कथन नहीं, और इसलिए उन संदर्भों में प्रकट हो सकते हैं जहां अभिव्यक्ति अपेक्षित है।
नियमित असाइनमेंट की तुलना में उनके पास एक अलग मूल्यांकन क्रम (दाएं से बाएं) और एक अलग प्राथमिकता है।
- वे कई लक्ष्यों, गैर-एकल नामों के लिए असाइनमेंट, पुनरावृत्त पैकिंग/अनपैकिंग, इनलाइन प्रकार एनोटेशन, या संवर्धित असाइनमेंट संचालन का समर्थन नहीं करते हैं।
- असाइनमेंट एक्सप्रेशन के परिचय के कारण
- पीईपी 379 की वापसी के बावजूद, जिसने एक समान अवधारणा का प्रस्ताव दिया था, पीईपी 572 ने कई कारणों से पायथन में असाइनमेंट अभिव्यक्तियां पेश कीं:
कोड पठनीयता और रखरखाव को बढ़ाने के लिए, विशेष रूप से समझ के भीतर और लैम्ब्डास। अन्य आधुनिक प्रोग्रामिंग भाषाओं के साथ जो असाइनमेंट अभिव्यक्तियों का समर्थन करती हैं।