Jason-YY 发表于 2022-5-18 19:19:22

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对于中文字符串对象会新开辟一个内存空间而英文则不会?

Twilight6 发表于 2022-5-18 19:48:05


但如果指向中文字符串对象时,is则判断id,== 则判断value,请问这是什么机制?

同样都是字符串数据类型,为何python对于中文字符串对象会新开辟一个内存空间而英文则不会?

因为 Python 字符串种有节省内存的机制,参考文章:https://blog.csdn.net/weixin_42298254/article/details/114452748
页: [1]
查看完整版本: is he ==的区别