python是如何在后台知道某物等于某物的,它是否查看了它们的内存位置

2024-04-26 00:53:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始学习python,我知道当你将变量设置为一个对象类型(比如字符串)时,它会使它们相等,但我想知道为什么'abc'='abc'为真,它会检查两个字符串的内存位置,看它们是否有相同的位置?或者python是否检查字符串的实际内部以查看每个字符是否匹配

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

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

Tags: 对象内存字符串代码falsetrue类型output
1条回答
网友
1楼 · 发布于 2024-04-26 00:53:35

相等运算符==检查相等性。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

EDIT:From@Barmar“最后一个结果的原因是不可变对象被插入,因此它不会生成等价字符串的多个副本。”

相关问题 更多 >