栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python的is和==

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python的is和==

python的is和==
  • 1. is 和 ==
  • 2. 举例
    • 1. ==
    • 2. is
  • 3. a = 10 b =10,地址一样吗?

1. is 和 ==

万物皆对象,对象是由id(地址),type(类型),value(值)组成。

  1. is:判断两个地址是否一样,也就是说它们的引用的是否为同一个对象。
  2. == :判断两个对象的值是否相等
2. 举例 1. ==
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值是否相等 False	
2. 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的地址不一样,它们引用不是同一个对象

3. a = 10 b =10,地址一样吗?
答案是一样的
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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/926066.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号