Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में A += B असाइनमेंट पहेली


इस अध्याय में हम देखते हैं कि जब हम टपल में मानों को अपडेट करते हैं तो क्या होता है, जो वास्तव में अपरिवर्तनीय है। हम नए मानों को पुराने मानों के साथ मर्ज कर सकते हैं लेकिन यह त्रुटि फेंकता है। हम त्रुटि के बाइटकोड का अध्ययन कर सकते हैं और बेहतर समझ सकते हैं कि टपल के नियम कैसे काम करते हैं।

पहले हम एक टपल परिभाषित करते हैं और फिर इसके अंतिम तत्व को अपडेट करने का कमांड जारी करते हैं जैसा कि नीचे दिखाया गया है।

उदाहरण

>>> tupl = (5, 7, 9, [1, 4])
>>> tupl[3] += [6, 8]

आउटपुट

Traceback (most recent call last):
  File "", line 1, in
TypeError: 'tuple' object does not support item assignment
>>> tupl
(5, 7, 9, [1, 4, 6, 8])

अब उपरोक्त दृष्टिकोण के बाइट कोड का अध्ययन करने के लिए हम कोड को एक फ़ंक्शन में डालते हैं और बाइट कोड प्रदर्शित करने के लिए dis विधि लागू करते हैं। हमें वही त्रुटि मिलती है लेकिन अधिक विवरण के साथ।

उदाहरण

def immut_function():
    tupl = (5, 7, 9, [1, 4])
    tupl[3] += [6, 8]

immut_function()

आउटपुट

TypeError Traceback (most recent call last)
in ()
    2 tupl = (5,7,9,[1,4])
    3 tupl[3] += [6,8]
----> 4 immut_function()
in immut_function()
    1 def immut_function():
    2 tupl = (5,7,9,[1,4])
----> 3 tupl[3] += [6,8]
4 immut_function()
TypeError: 'tuple' object does not support item assignment

अब हम उपरोक्त फ़ंक्शन के बाइटकोड को प्रदर्शित करते हैं ताकि टपल असाइनमेंट और त्रुटियों का विवरण देखा जा सके।

उदाहरण

import dis
dis.dis(immut_function)

आउटपुट

2    0 LOAD_CONST                1 (5)
     3 LOAD_CONST                2 (7)
     6 LOAD_CONST                3 (9)
     9 LOAD_CONST                4 (1)
    12 LOAD_CONST                5 (4)
    15 BUILD_LIST                2
    18 BUILD_TUPLE               4
    21 STORE_FAST                0 (tupl)
3   24 LOAD_FAST                0 (tupl)
    27 LOAD_CONST                6 (3)
    30 DUP_TOPX                2
    33 BINARY_SUBSCR
    34 LOAD_CONST                7 (6)
    37 LOAD_CONST                8 (8)
    40 BUILD_LIST                2
    43 INPLACE_ADD
    44 ROT_THREE
    45 STORE_SUBSCR
    46 LOAD_CONST                0 (None)
    49 RETURN_VALUE

निष्कर्ष यह है कि टपल में परिवर्तनीय तत्व न डालें। हालांकि असाइनमेंट संभव है, यह अपवाद फेंकता है। जैसा कि मान 46 वाले चरण में दिखाया गया है, असाइनमेंट विफल हो जाता है क्योंकि टपल एक अपरिवर्तनीय ऑब्जेक्ट है।

  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म

  1. - Python बिटवाइज़ असाइनमेंट ऑपरेटर में वर्टिकल बार क्या है?

    Python में वर्टिकल बार (|) बिटवाइज़ OR ऑपरेटर वर्टिकल बार (|) बिटवाइज़ OR ऑपरेटर के लिए खड़ा है। दो पूर्णांक ऑब्जेक्ट्स के मामले में, यह दोनों के बिटवाइज़ OR ऑपरेशन को लौटाता है। >>> a = 4 >>> bin(a) 0b100 >>> b = 5 >>> bin(b) 0b101 >>> a | b 5 >>&

  1. - Python में विभिन्न असाइनमेंट ऑपरेटर्स के प्रकार क्या हैं?

    निम्न तालिका सभी असाइनमेंट ऑपरेटर्स को दर्शाती है: ऑपरेटर विवरण उदाहरण = दाएं ऑपरेंड के मान को बाएं ऑपरेंड को असाइन करता है c = a + b, a + b का मान c में += दाएं ऑपरेंड को बाएं ऑपरेंड में जोड़ता है और परिणाम को बाएं ऑपरेंड को असाइन करता है c += a, a को c में जोड़ें -= दाएं ऑपरेंड को बाएं