Python猜我猜,看看

时间:2018-06-15 05:44:19

标签: python

做的:

>>>'a'*20 is "aaaaaaaaaaaaaaaaaaaa"

给出

>>>True

在做的时候:

>>>'a'*21 is "aaaaaaaaaaaaaaaaaaaaa"

给出

>>>False

这是怎么回事?这是一个错误吗?

1 个答案:

答案 0 :(得分:1)

对于较小的对象,python正在重用已分配的内存。 但对于较大的物体,参考正在改变。 请检查this

x='aaaaaaaaaaaaaaaaaaaaa'
y='a'*21
t= 'a'*20
u = 'aaaaaaaaaaaaaaaaaaaa'

这里t和你引用相同的字符串,但x和y不是这样,因此对象比较不起作用。