Python常见函数之 is和==的区别

python 常见函数之 is 与 == 的区别

is

is 比较 id()

==

== 比较 变量值

代码解释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# is, 本质 id(a) 与 id(b) 比较
# = 右边为对象时,表示生成新对象

a = [1, 2, 3, 4]
b = [1, 2, 3, 4]
print(a is b) # False, 说明 id 不同
print(id(a), id(b))
print(a == b) # True, 值相同,内部 __eq__ 魔法函数

# 小整数、小字符串 全局唯一 intern机制

a1 = 1 a2 = 1
print(a1 is a2) # True
s1 = 'abc'
s2 = 'abc'
print(s1 is s2) # True

# 类

class People:
pass

# People 全局唯一
person = People()
print(type(person) is People) # True

Python常见函数之 is和==的区别
https://dreamshao.github.io/2024/06/27/is和==的区别/
作者
Yun Shao
发布于
2024年6月27日
许可协议