>>> s1 = "spam"
>>> s2 = "spam"
>>> s1 is s2
True
>>> q = 'asdalksdjfla;ksdjf;laksdjfals;kdfjasl;fjasdf'
>>> r = 'asdalksdjfla;ksdjf;laksdjfals;kdfjasl;fjasdf'
>>> q is r
False
How many characters should have to s1 is s2
give False
? Where is limit? i.e. I am asking how long a string has to be before python starts making separate copies of it.
String interning is implementation specific and shouldn't be relied upon, use equality testing if you want to check two strings are identical.