据我所知,python中的is
运算符仅在两个对象在内存中求值相同时才返回True,而==
返回True时两个操作数值相等。
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
>>> a == b
True
因此,上面的代码就是这样执行的。
>>> a = "Text"
>>> b = "Text"
>>> c = "".join(['T', 'e', 'x', 't'])
>>> a is b
True
>>> a is c
False
>>> a == c
True
这是怎么回事?我使用了id()
函数来检查他们的地址,它为a
和b
返回了完全相同的值,但是c
返回了一些不同的值。为什么a
和b
指向内存中的同一事物而c
指向不同的事物?
还有一个额外的问题:python如何找到 string , number 文字的值。我的意思是;不同程序的文字0, 1, 2, 3, 4, ...
或'a', 'b', 'c', 'd' ...
的地址是否相同?在此先感谢您,如果使用了错误的术语,我们深感抱歉。