पायथन में स्ट्रिंग्स अपरिवर्तनीय हैं, जिसका अर्थ है कि एक बार एक स्ट्रिंग बन जाने के बाद, इसे बदला नहीं जा सकता है। जब आप एक स्ट्रिंग बनाते हैं, और यदि आप एक ही स्ट्रिंग बनाते हैं और इसे किसी अन्य चर के लिए असाइन करते हैं, तो वे दोनों एक ही स्ट्रिंग/मेमोरी की ओर इशारा करेंगे। उदाहरण के लिए,
>>> a = 'hi' >>> b = 'hi' >>> id(a) 43706848L >>> id(b) 43706848L
स्ट्रिंग ऑब्जेक्ट्स के इस पुन:उपयोग को पायथन में इंटर्निंग कहा जाता है। एक ही तार में एक ही आईडी है। लेकिन पाइथन को इंटर्न स्ट्रिंग्स की गारंटी नहीं है। यदि आप ऐसे तार बनाते हैं जो या तो कोड ऑब्जेक्ट स्थिरांक नहीं हैं या जिनमें अक्षर + संख्या + अंडरस्कोर श्रेणी के बाहर वर्ण हैं, तो आप देखेंगे कि id() मान का पुन:उपयोग नहीं किया जा रहा है।
हम दिए गए स्ट्रिंग की आईडी को निम्नानुसार बदलते हैं। हम इसे दो अलग-अलग पहचानकर्ताओं को असाइन करते हैं। पाए जाने पर इन चरों की आईडी भिन्न होती है। ऐसा इसलिए है क्योंकि दी गई स्ट्रिंग में अक्षर, अंक और अंडरस्कोर के अलावा अन्य वर्ण हैं।
>>> a = 'weworks_45#@$' >>> b = 'weworks_45#@$' >>> id(a) 96226208L >>> id(b) 91720800L