关于Python踩坑,a = "//" 之后 a is "//" 语句是否为True?

    这两天踩了个坑,用写LCS的时候,发现

这里写图片描述

程序里面用了这个写法,然后就一直bug.
有点无语.常量的储存类型和变量的储存类型分开了.
is 判断是比较的左右操作数的地址是否相等.如果是同一个对象,则返回True,否则返回False.

这里写图片描述

这里要特别注意,以后变量判断是否等于某一常量的时候,如果使用is,可能永远都是False.

但是遇到个坑,

a = "+"ː a is "+"
a = "\\"ː a is "\\"

两则后面一个语句的bool值是不同的...前者为真,后者为假...

感谢@凯旋冲锋 找到这个blog.link里面的博文讲的很清楚.不过感觉我还是有些不理解...
http://guilload.com/python-string-interning/
这里可能和转义字符有关系.









关于Python踩坑,a = "//" 之后 a is "//" 语句是否为True?_第1张图片

你可能感兴趣的:(python)