पायथन में जंजीरदार असाइनमेंट को समझना
पाइथन में जंजीरदार असाइनमेंट, जिसका उदाहरण "x = y = somefunction()" जैसे भाव हैं, ने स्पार्क किया है एकाधिक अनुक्रमिक असाइनमेंट ("x = somefunction(); y = somefunction()") के साथ उनकी समानता के संबंध में चर्चा। इस मामले को स्पष्ट करने के लिए, आइए जंजीर वाले असाइनमेंट के संचालन के बारे में विस्तार से जानें।
एक जंजीर असाइनमेंट में, सबसे बायां लक्ष्य पहले सौंपा गया है। इसलिए, "x = y = somefunction()" इसके बराबर है:
temp = somefunction() x = temp y = temp
यह आदेश महत्वपूर्ण है, क्योंकि बाईं ओर के लक्ष्य को अस्थायी चर "temp" का मान दाईं ओर के लक्ष्य को सौंपे जाने से पहले प्राप्त होता है। यह एक जंजीर असाइनमेंट फ़ंक्शन के डिस्सेप्लर में स्पष्ट है:
>>> def chained_assignment(): ... x = y = some_function() ... >>> import dis >>> dis.dis(chained_assignment) 2 0 LOAD_GLOBAL 0 (some_function) 3 CALL_FUNCTION 0 6 DUP_TOP 7 STORE_FAST 0 (x) 10 STORE_FAST 1 (y) 13 LOAD_CONST 0 (None) 16 RETURN_VALUE
ध्यान दें कि फ़ंक्शन द्वारा लौटाया गया मान पहले "x" में संग्रहीत होता है, फिर "y" में।
श्रृंखलाबद्ध असाइनमेंट के व्यवहार को समझने के लिए यह समझ महत्वपूर्ण है। उदाहरण के लिए, "x = y = []" जैसी अभिव्यक्तियों से बचना चाहिए, क्योंकि "x" और "y" दोनों एक ही सूची को संदर्भित करेंगे। इसके बजाय, अलग-अलग सूचियाँ बनाने के लिए "x = []" और "y = []" जैसे अलग-अलग असाइनमेंट को प्राथमिकता दें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3