python - Comparing strings using '==' and 'is' -
संभावित डुप्लिकेट:
हाय।
मेरे पास एक सवाल है जो संभवत: मुझे जो कुछ पूछ रहा है उससे अधिक जानना चाहिए।
इस पर विचार करें:
& gt; & gt; & gt; X = 'नमस्कार' & gt; & gt; & gt; Y = 'हैलो' & gt; & gt; & gt; X == y सत्य & gt; & gt; & gt; एक्स सच है
मैंने हमेशा तुलना ऑपरेटर का उपयोग किया है इसके अलावा मैंने पढ़ा कि है
मेमोरी एड्रेस की तुलना करता है और इसलिए इस मामले में रिटर्न true
तो मेरा सवाल है, यह चर का तुलना करने का दूसरा तरीका है पायथन में? यदि हां, तो इसका इस्तेमाल क्यों नहीं किया जाता?
इसके अलावा मैंने देखा कि सी ++ में, यदि वेरिएबल्स का एक ही मान है, तो उनके मेमोरी पते अलग हैं।
<पूर्व> {int x = 40; Int y = 40; Cout & lt; & lt; & Amp; एक्स, & amp; y; } 0xbfe89638, 0xbfe89634
पायथन के समान मेमोरी पते वाले कारण क्या है?
पायथन में समानता की जांच करने के दो तरीके हैं: ==
और है
। ==
मान की जांच करेगा, जबकि है
पहचान की जांच करेगा। लगभग हर मामले में, यदि है
सच है, तो ==
सच होना चाहिए।
कभी-कभी, पायथन (विशेष रूप से, सीपीथॉन) एक साथ मूल्यों को अनुकूलित करेगा ताकि उनकी एक ही पहचान हो। यह विशेष रूप से लघु तारों के लिए सच है पायथन को पता है कि 'हैलो' 'हैलो' के समान है और चूंकि तार अपरिवर्तनीय हैं, वे स्ट्रिंग इंटर्निंग / स्ट्रिंग पूलिंग के द्वारा एक ही होते हैं।
एक संबंधित प्रश्न देखें:
Comments
Post a Comment