作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
为什么使用冒号会影响结果?正确的结果应该是什么?
# Not stored in a different location.
>>> id('123 4')== id('123 4')
True
# Also returns true
>>> x = '123 4'; y ='123 4'; id(x) == id(y)
True
>>> x = '123 4'
>>> y = '123 4'
>>> id(x) == id(y)
False
>>> def test():
... x = '123 4';y='123 4'; print (id(x)==id(y))
... a = '123 4'
... b='123 4'
... print (id(a)==id(b))
...
>>> test()
True
True
最佳答案
>>> x="123 4";y="123 4"
Python 足够聪明,可以识别两个变量获得相同的值(因为它们在同一行中被解释),因此将该值存储在相同的内存位置(即 id(x) == id( y)
).
但是
>>> x="123 4"
>>> y="123 4"
Python 不够聪明,无法意识到它们是相同的值(因为它们是在不同的行上解释的),因此将每个存储在自己的内存位置(即 id(x) != id(y )
).
关于Python分号确实有所作为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28883858/
我是一名优秀的程序员,十分优秀!