python如何在幕后得知某物等于某物,它会查看它们的内存位置

时间:2019-06-20 20:01:17

标签: python boolean equality

我刚刚启动python,我了解到,当您将变量设置为等于字符串之类的对象类型时,它将使它们等效,但是我想知道为什么'abc'=='abc'是,它会检查吗两个字符串的存储位置,看看它们是否具有相同的位置?还是python检查字符串的实际内部以查看每个字符是否匹配?

我知道这是一个基本的python问题,我理解为什么代码会输出我们看到的结果,但是我想知道当您只使用相同结构的数据类型时python如何检查相等性。

'abc' == 'abc' #Output is True
'ab' == 'abc' #Output is False

1 个答案:

答案 0 :(得分:0)

相等运算符==检查是否相等。 ab是相同的字符串吗?

a = [1,2,3]
b = [1,2,3]
a == b  # True
a is b  # False

有一个is关键字将检查内存位置。

a = [1,2,3]
b = [1,2,3]
a is b # False
c = a
a is c  # True

值得注意的是,与is关键字一起使用时,字符串的工作方式略有不同。

a = '123'
b = '123'
a == b  # True
a is b  # True

编辑:来自@Barmar“最后一个结果的原因是不可变的对象被锁住了,所以它不会复制等效字符串的多个副本。”