>>> s1 = "spam"
>>> s2 = "spam"
>>> s1 is s2
True
>>> q = "asdalksdjfla;ksdjf;laksdjfals;kdfjasl;fjasdf"
>>> r = "asdalksdjfla;ksdjf;laksdjfals;kdfjasl;fjasdf"
>>> q is r
False
कितने पात्र होना चाहिए s1 is s2
देना False
? सीमा कहाँ है? यानी, मैं पूछ रहा हूं कि पाइथन इससे अलग प्रतियां बनाने से पहले एक स्ट्रिंग कितनी देर होनी चाहिए।
उत्तर:
उत्तर № 1 के लिए 13स्ट्रिंग इंटर्निंग कार्यान्वयन विशिष्ट है और यदि आप दो तारों को देखना चाहते हैं तो समानता परीक्षण का उपयोग नहीं किया जाना चाहिए।
जवाब के लिए 11 № 2
यदि आप चाहते हैं, कुछ विचित्र कारणों से, तुलना को सत्य होने के लिए मजबूर करने के लिए इंटर्न फ़ंक्शन का उपयोग करें:
>>> ए = इंटर्न ("12345678012345678901234567890qazwsxedcrfvtgbyhnujmikolp") >>> बी = इंटर्न ("12345678012345678901234567890qazwsxedcrfvtgbyhnujmikolp") >>> एक बी है सच
जवाब के लिए 4 № 3
CPython 2.5.0 स्रोत फ़ाइल (stringobject.h) से आंतरिक स्ट्रिंग के बारे में टिप्पणी का एक टुकड़ा यहां दिया गया है
/* ... ... This is generally restricted to strings that **"look like" Python identifiers**, although the intern() builtin can be used to force interning of any string ... ... */
तदनुसार, तारों में केवल अंडरस्कोर होते हैं, अंक या वर्णमाला को प्रशिक्षित किया जाएगा। आपके उदाहरण में, q
और `` आर शामिल है ;
, इसलिए उन्हें प्रशिक्षित नहीं किया जाएगा।