- 1. is 和 ==
- 2. 举例
- 1. ==
- 2. is
- 3. a = 10 b =10,地址一样吗?
万物皆对象,对象是由id(地址),type(类型),value(值)组成。
- is:判断两个地址是否一样,也就是说它们的引用的是否为同一个对象。
- == :判断两个对象的值是否相等
a = 1
b = 1
c = [1, 2, 3]
d = [1, 2, 3, 4]
print('a和b值是否相等', a == b)
print('c和d值是否相等', c == d)
打印结果: a和b值是否相等 True c和d值是否相等 False2. is
a = 1 b = a c = [1, 2, 3] d = [1, 2, 3, 4] print(id(a)) print(id(b)) print(id(c)) print(id(d))
a和b的地址一样,它们引用同一个对象
c和d的地址不一样,它们引用不是同一个对象
答案是一样的
a = 10 b = 10 print(id(a)) print(id(b)) 2285737568848 2285737568848
如果将a和b的值换位列表呢?
地址又不一样了,这又是为什么?
a = [1, 2, 3] b = [1, 2, 3] print(id(a)) print(id(b)) 2229396321664 2229396321600
缓存池技术:
python为了优化速度,提高效率,避免了频繁的创建和销毁对象,[-5,256]会被认为是频繁使用的整数 它会提前存储在小整数对象池中,数据只要在这个区间内 可以直接引用同一个对象。
a = 10 b = 10 print(id(a)) print(id(b)) print(a is b) 2476320713296 2476320713296 True



