首先python的is作用:比较两个对象的地址值是否相等。
也就是说如果id(对象1)==id(对象2)
,那么 对象1 is 对象2
返回True
举个栗子:
a='spam'
b='spam'
c='this is a long string'
d='this is a long string'
print(a is b)
print(c is d)
结果如下:
纳尼,为什么两次is比较的结果不一样啊,按理说变量a和b是两个不同的对象,a is b 应该返回False才对啊。原来python把相等的较短的字符串放在同一个内存块里,把相等的较长的较长的字符串放在不同的内存块里。
参考书籍:
Learning Python 5E