is he ==的区别
>>> x = "小甲鱼">>> y = "小甲鱼"
>>> x == y
True
>>> x is y
False
>>> x
'小甲鱼'
>>> y
'小甲鱼'
>>> x = "Jason"
>>> y = "Jason"
>>> x == y
True
>>> x
'Jason'
>>> y
'Jason'
>>> x is y
True
>>> id(x)
140536669219120
>>> id(y)
140536669219120
如上面的代码,x和y 指向英文字符串对象时,is 和 == 结果都返回True,但如果指向中文字符串对象时,is则判断id,== 则判断value,请问这是什么机制?同样都是字符串数据类型,为何python对于中文字符串对象会新开辟一个内存空间而英文则不会?
但如果指向中文字符串对象时,is则判断id,== 则判断value,请问这是什么机制?
同样都是字符串数据类型,为何python对于中文字符串对象会新开辟一个内存空间而英文则不会?
因为 Python 字符串种有节省内存的机制,参考文章:https://blog.csdn.net/weixin_42298254/article/details/114452748
页:
[1]