什么时候pythonselect实习一个string
>>> 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
有多less个字符? s1 is s2
为False
? 限制在哪里? 也就是说,我想知道在Python开始制作单独的拷贝之前,一个string需要多长时间。
stringinterning是特定于实现的,不应该依赖,如果要检查两个string是否相同,则使用相等性testing。
如果你想,为了一些奇怪的原因,强迫比较是真实的,然后使用实习生function:
>>> a = intern('12345678012345678901234567890qazwsxedcrfvtgbyhnujmikolp') >>> b = intern('12345678012345678901234567890qazwsxedcrfvtgbyhnujmikolp') >>> a是b 真正
这里是一段关于从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 ... ... */
因此,string只包含下划线,数字或字母将被禁止。 在你的例子中, q
和`r包含;
,所以他们不会被拘留。