परिवर्तनीय एवं अपरिवर्तनीय ऑब्जेक्ट्स Python {उदाहरण}

परिवर्तनीय ऑब्जेक्ट क्या है?

में परिवर्तनशील Python इसे ऐसी वस्तु के रूप में परिभाषित किया जा सकता है जो बदल सकती है या जिसे प्रकृति में परिवर्तनीय माना जा सकता है। परिवर्तनशील का अर्थ है किसी मूल्य को संशोधित या संपादित करने की क्षमता।

परिवर्तनीय वस्तुएँ Python प्रोग्रामर को ऐसे ऑब्जेक्ट बनाने में सक्षम बनाता है जो अपने मान बदल सकते हैं। वे आम तौर पर डेटा के संग्रह को संग्रहीत करने के लिए उपयोग किए जाते हैं। इसे कुछ ऐसा माना जा सकता है जो उत्परिवर्तित हो गया है, और किसी ऑब्जेक्ट के भीतर लागू आंतरिक स्थिति बदल गई है।

अपरिवर्तनीय वस्तुएं क्या हैं?

अपरिवर्तनीय वस्तुएँ Python उन वस्तुओं के रूप में परिभाषित किया जा सकता है जो समय के साथ अपने मूल्यों और विशेषताओं को नहीं बदलते हैं।
ये ऑब्जेक्ट एक बार निर्मित और आरंभीकृत होने के बाद स्थायी हो जाते हैं, और वे डेटा संरचनाओं का एक महत्वपूर्ण हिस्सा बन जाते हैं जिनका उपयोग कंप्यूटर में किया जाता है। Python.

Python संख्याओं में प्रयोग किया जाता है, tuples, स्ट्रिंग्स, फ्रोजन सेट और कुछ अपवादों के साथ उपयोगकर्ता-परिभाषित क्लास। वे बदल नहीं सकते हैं, और उनके मूल्य और यह एक बार आरंभ होने के बाद स्थायी रहता है और इसलिए अपरिवर्तनीय कहा जाता है।

In Python, सब कुछ एक वस्तु है

में Python प्रोग्रामिंग भाषा में, सब कुछ एक ऑब्जेक्ट के रूप में माना जा सकता है जिसमें सूचियाँ, पूर्णांक और फ़ंक्शन शामिल हैं। इस सुविधा की तुलना अन्य प्रोग्रामिंग भाषाओं से की जा सकती है जो ऑब्जेक्ट का समर्थन करती हैं।

इस सुविधा को एक का उपयोग करके सत्यापित किया जा सकता है Python नीचे दिखाए अनुसार दुभाषिया: –

Python कोड:

print("The following instance is an object:",isinstance(3,object))
print("Another instance for object", isinstance(True, object))
def my_func():
    return "guru99"
print("This is a function example and regarded as an object in Python:", isinstance(my_func, object))

आउटपुट:

A following instance is an object: True
Another instance for object True
This is a function example and regarded as an object in Python: True

इसके अलावा, Python आईडी नामक एक अंतर्निहित फ़ंक्शन प्रदान करता है जो मेमोरी में मौजूद ऑब्जेक्ट का पता लौटाता है Python प्रोग्रामिंग भाषा।

Python कोड:

z=200
id(z)
print("The id of object is", id(z))

आउटपुट:

the id of object is 9795360

उपरोक्त कोड में, id(obj) सिंटैक्स वाला id फ़ंक्शन obj का पता देता है Python मेमोरी। यहाँ, z नामक एक ऑब्जेक्ट है, और इसका असाइनमेंट 200 है। ऑब्जेक्ट z को फिर id(z) के रूप में id फ़ंक्शन में पास किया जाता है, और Python ऑब्जेक्ट का पता 9795360 बताता है।

परिवर्तनीय वस्तुएँ Python

परिवर्तनीय वस्तु में, वस्तु का मूल्य समय के साथ बदलता रहता है।

इस उदाहरण में, हमने परिवर्तनीय वस्तुओं को समझाया है Python, और यह परिवर्तनीय वस्तुओं के अनुप्रयोग के रूप में सूचियों का उपयोग करता है जैसा कि नीचे दिखाया गया है: -

Python कोड:

mut_list = [1, 2, 3]
  print("The list in Python",mut_list)
mut_list[0] = 'Gurru99'
mut_list
  print("The list in Python after changing value",mut_list)

आउटपुट:

The list in Python [1, 2, 3]
The list in Python after changing value ['Gurru99', 2, 3]

जैसा कि हम ऊपर दिए गए उदाहरण में देख सकते हैं, परिवर्तनीय सूची Python 1,2,3 के मान थे। परिवर्तनीय सूची का पहला तत्व 1 से गुरु99 में बदल जाता है, और जब कोई नया मान आरंभ किया जाता है तो यह कोई नया ऑब्जेक्ट नहीं बनाता है।

यहाँ हम इसका उपयोग करने के लिए id विधि का उपयोग कर सकते हैं। नीचे दिखाए गए अनुसार परिवर्तनीय ऑब्जेक्ट के लिए id विधि के उपयोग को दर्शाया गया है: –

Python कोड:

mut_list = [1, 2, 3]
print("The list in Python",mut_list)
print("the id of the list is ",id(mut_list))
mut_list[0] = 'Gurru99'
mut_list
print("The mut list in Python after changing value",mut_list)
print("the id of the list is post change in value",id(mut_list))

उत्पादन

The list in Python [1, 2, 3]
the id of the list is 139931568729600
The list in Python after changing value ['Gurru99', 2, 3]
the id of the list is post change in value 139931568729600

निम्नलिखित चित्र में परिवर्तनीय ऑब्जेक्ट को दर्शाया गया है Python जैसा कि नीचे दिया गया है: -

परिवर्तनीय वस्तुएँ Python

अपरिवर्तनीय वस्तुएँ Python

अपरिवर्तनीय वस्तुएँ Python ऐसी वस्तुएँ हैं जिनमें इंस्टेंस समय के साथ नहीं बदलते हैं। एक विशिष्ट प्रकार के अपरिवर्तनीय इंस्टेंस, एक बार बनाए जाने के बाद, नहीं बदलते हैं, और इसे id विधि का उपयोग करके सत्यापित किया जा सकता है Python.

आइये पूर्णांक प्रकार की वस्तुओं का एक उदाहरण लेते हैं Python जो अपरिवर्तनीय वस्तुओं की अवधारणा को दर्शाता है Python जैसा कि नीचे दिया गया है: -

Python कोड:

a=244
print("the number before change is",a)
print("the id of number before change is",id(a))
a=344
print("the number after change is",a)
print("the id of number after change is",id(a))

उत्पादन

the number before a change is 244
the id of number before change is 9796768
the number before change is 344
the id of number before change is 140032307887024

जैसा कि ऊपर देखा जा सकता है कि "a" में परिवर्तन है। आइए अध्ययन करें कि यह तंत्र कैसे काम करता है:

  • 344 के साथ “a” को आरंभीकृत करने पर ऑब्जेक्ट के मान में कोई परिवर्तन नहीं होता है।
  • इसके बजाय, एक नई वस्तु बनाई जाती है और उसे “a” से बांध दिया जाता है।
  • 244 के रूप में निर्दिष्ट अन्य ऑब्जेक्ट अब पहुंच योग्य नहीं होगा।
  • उपरोक्त उदाहरण में पूर्णांक ऑब्जेक्ट का उपयोग किया गया है।

a=244 पर, एक नया ऑब्जेक्ट बनाया जाता है और “a” को संदर्भित किया जाता है जैसा कि नीचे दिखाया गया है: –

अपरिवर्तनीय वस्तुएँ Python

a=344 का उपयोग करने के बाद, “a” से संदर्भित एक नई वस्तु है। निम्नलिखित आरेख उसी का प्रतिनिधित्व करता है: –

अपरिवर्तनीय वस्तुएँ Python

इसलिए, जब भी int प्रकार के नाम में कोई नया मान असाइन किया जाता है, तो किसी अन्य ऑब्जेक्ट के साथ नाम के बंधन में बदलाव होता है। यही सिद्धांत टपल के साथ भी लागू होता है, तार, फ्लोट, और बूलियन इसलिए अपरिवर्तनीय कहा जाता है।

शब्दकोश कुंजियों के लिए निहितार्थ Python

शब्दकोशों को क्रमबद्ध संग्रह के रूप में परिभाषित किया जा सकता है जो कुंजी प्रारूप में डेटा संग्रहीत करता है और डुप्लिकेट की अनुमति नहीं देता है। शब्दकोशों में एक कुंजी होती है जिसके साथ संबंधित मान युग्म संरेखित होते हैं। वे प्रकारों में परिवर्तनशील होते हैं, और उनकी सामग्री को उनके आरंभीकरण और निर्माण के बाद भी बदला जा सकता है।

किसी भी समय, कुंजी एक समय में एक विशिष्ट तत्व की ओर इशारा करती है। शब्दकोशों की कुंजियाँ अपरिवर्तनीय हैं।

आइए नीचे दिखाए गए अनुसार एक काल्पनिक परिदृश्य लें: –

a = [4, 6]
b = [5, 6, 7]
my_dict = {a: 'x', b: 'y'}
print(my_dict)

आउटपुट: - उपरोक्त Python कोड कोई आउटपुट नहीं देता है, और इसके बजाय, यह अनहैशेबल प्रकार की एक प्रकार की त्रुटि उत्पन्न करता है। यह एक काल्पनिक स्थिति है और इसका उपयोग नहीं किया जाता है Python संकलक।

यहाँ, a को [4,6] के रूप में परिभाषित किया गया है, और शब्दकोश में इसे x के रूप में परिभाषित किया गया है। यहाँ, b [5,6,7] के रूप में परिभाषित किया गया है, और शब्दकोश में इसे y के रूप में परिभाषित किया गया है।

  • कुंजी 'a' का मान [4,6] है, और इसे आगे x से आरंभ किया जाता है।
  • कुंजी 'b' का मान [5,6,7] है जिसे शब्दकोश में आगे 'y' के रूप में आरंभीकृत किया गया है।
  • अब मान लीजिए कि 'ए' 5 और 7 के साथ जोड़ा गया है, जो शब्दकोश के लिए एक कुंजी है।
  • फिर शब्दकोश को उत्परिवर्तित किया गया है, और यह दोनों देगा 'एक्स' और 'Y' उपरोक्त शब्दकोश के लिए मान के रूप में।

ऊपर दर्शाए गए निम्नलिखित परिदृश्य पर विचार करें: –

a = [5, 6,7]
b = [5, 6, 7]
my_dict = {a: 'x', b: 'y'}
print(my_dict)

इसलिए, एक प्रोग्रामिंग भाषा के रूप में, Python शब्दकोश की कुंजियों को अपरिवर्तनीय बनाता है, और शब्दकोश अपरिवर्तनीय डेटा प्रकार हैं।

अपरिवर्तनीयता में अपवाद

हालांकि, Python अपरिवर्तनीयता के लिए अपवाद प्रदान करता है ऐसे अपवाद टपल ऑब्जेक्ट प्रकार के लिए देखे जा सकते हैं। टपल परिवर्तनशील और अपरिवर्तनीय ऑब्जेक्ट प्रकारों का संयोजन हो सकता है। आइए अपरिवर्तनीयता में अपवादों को समझाने के लिए एक उदाहरण लेते हैं जैसा कि नीचे दिखाया गया है: -

Python कोड:

tupexample=([1,1],'guru99')
print("the tuple before change",tupexample)
print("the id of tuple before change",id(tupexample))
tupexample=([2,2],'guru99')
print("the tuple after change",tupexample)
print("the id of tuple after change",id(tupexample))

आउटपुट:

the tuple before change ([1, 1], 'guru99')
the id of tuple before change 140649480694656
the tuple after change ([2, 2], 'guru99')
the id of tuple after change 140649480694592

आप ऊपर दिए गए कोड में देख सकते हैं कि पहला तत्व, जो एक सूची है, परिवर्तनशील है, जबकि टपल अपरिवर्तनीय है। टपल का मान नहीं बदला जा सकता है, लेकिन टपल के अंदर मौजूद सूची की सामग्री इसके मान को बदल सकती है।

इसलिए, यह एक अपवाद उठाता है कि अपरिवर्तनीय वस्तुएं अपना मूल्य नहीं बदलती हैं, लेकिन घटकों का मूल्य उनके मूल्य को बदल देता है।

परिवर्तनीय बनाम अपरिवर्तनीय वस्तुएँ

परिवर्तनीय और अपरिवर्तनीय वस्तुओं के बीच प्रमुख अंतर इस प्रकार हैं:

परिवर्तनीय वस्तु अपरिवर्तनीय वस्तु
एक बार ऑब्जेक्ट बन जाने के बाद उसकी स्थिति बदली जा सकती है एक बार निर्मित होने के बाद ऑब्जेक्ट की स्थिति को बदला नहीं जा सकता
परिवर्तनीय वस्तुओं को प्रकृति में थ्रेड-सुरक्षित नहीं माना जाता है। अपरिवर्तनीय वस्तुओं को प्रकृति में थ्रेड-सुरक्षित माना जाता है।
परिवर्तनीय ऑब्जेक्ट्स को अंतिम नहीं बनाया जाता है, और इसलिए प्रोग्रामर परिवर्तनीय ऑब्जेक्ट्स को बदलता रह सकता है और उन्हीं ऑब्जेक्ट्स का उपयोग कर सकता है। अपरिवर्तनीय ऑब्जेक्ट का निर्माण करते समय क्लास को अंतिम बनाना महत्वपूर्ण है

Python अपरिवर्तनीय डेटा प्रकार

वर्ग व्याख्या अपरिवर्तनीय है या नहीं
बूल बूलियन मान अडिग
Int पूर्णांक मान (परिमाण मनमाना हो सकता है) अडिग
नाव चल बिन्दु संख्या अडिग
सूची परिवर्तनशील प्रकृति की वस्तुओं का अनुक्रम परिवर्तनशील
टपल अपरिवर्तनीय प्रकृति की वस्तुओं का अनुक्रम अडिग
Str वर्ण / स्ट्रिंग अडिग
सेट अलग-अलग वस्तुओं का समूह जो अव्यवस्थित प्रकृति का है परिवर्तनशील
फ्रोज़नसेट अपरिवर्तनीय प्रकृति का वर्ग निर्धारित करें अडिग
हुक्म शब्दकोश या साहचर्य मानचित्रण परिवर्तनशील