当前位置: 首页 > news >正文

网站内容建设评估简洁风格的网站模板免费下载

网站内容建设评估,简洁风格的网站模板免费下载,旅游网站建设网,富阳建设局网站首页2.3 “is”和“”的区别 在Python编写代码时,经常会遇到需要判断2个对象是否相等的情况,这个时候一般就会想到使用is和,is和好像都可以用来判断对象是否相等,经常会傻傻分不清,但其实这其中还是有区别的。 不过在这之…

2.3 “is”和“==”的区别

在Python编写代码时,经常会遇到需要判断2个对象是否相等的情况,这个时候一般就会想到使用is==is==好像都可以用来判断对象是否相等,经常会傻傻分不清,但其实这其中还是有区别的。
不过在这之前,我们得先了解一些基本知识。
①、在Python中,一切皆对象,比如变量、函数等,都是对象。对象包含3个基本要素:

  • id:身份标识
  • type:数据类型
  • value:值
    ②、在Python中,根据对象的值能否原地修改,分为可哈希和不可哈希。能原地修改的是不可哈希对象,不能原地修改的是可哈希对象。Python常见对象(类型)哈希状态如下:
对象(类型)哈希
数字可哈希
字符串可哈希
列表不可哈希
元组可哈希
集合不可哈希
字典不可哈希

③、在Python中,变量的赋值其实就是贴标签,重新赋值后并不会直接修改变量的值,而是将变量重新指向新的赋值对象。关于这一点请看下面的例子:

from icecream import ic
a = 'A'
b = 'B'
ic(a, id(a), id(b))
a = 'B'
ic(a, id(a))

ic| a: ‘A’, id(a): 1897621655920, id(b): 1897659140592
ic| a: ‘B’, id(a): 1897659140592

④、在Python中,可哈希对象的值一样,那么其标识符(id)也一样。请看下方的例子:

from icecream import ic
a = 'ABC'
b = 'ABC'
ic(id(a), id(b))
ic(id(a) == id(b) == id('ABC'))
c = d = 'DEF'
ic(id(c), id(d))
ic(id(c) == id(d) == id('DEF'))
a = b = c
ic(id(a), id(b), id(c))
ic(id(a) == id(b) == id(c))

ic| id(a): 2682794608816, id(b): 2682794608816
ic| id(a) == id(b) == id(‘ABC’): True
ic| id©: 2682822597040, id(d): 2682822597040
ic| id© == id(d) == id(‘DEF’): True
ic| id(a): 2682822597040, id(b): 2682822597040, id©: 2682822597040
ic| id(a) == id(b) == id©: True

在Python中,==是比较操作符,用来比较两个对象的值是否相等。判断时,相当于调用了对象中的__eq__()方法,即:对象1 == 对象2  对象1.eq(对象2)。
is是同一性运算符,用来判断两个对象的标识符(id)是否一致。即:对象1 is 对象2  id(对象1) == id(对象2)。
对于可哈希对象,由于值一样,则标识符(id)必定一样,is==的结果始终保持一致。
而对于不可哈希对象,就算两个对象的值一样,他们的标识符(id)也不一样。导致is==的结果不一样。如下所示:

from icecream import ic
a = ['ABC']
b = ['ABC']
ic(id(a), id(b))
ic(a is b)
ic(id(a) == id(b) == id(['ABC']))
c = d = ['DEF']
ic(id(c), id(d))
ic(c is d)
ic(id(c) == id(d) == id(['DEF']))
a = b = c
ic(id(a), id(b), id(c))
ic(a is b, b is c)
ic(id(a) == id(b) == id(c))

ic| id(a): 1115121876032, id(b): 1115122037184
ic| a is b: False
ic| id(a) == id(b) == id([‘ABC’]): False
ic| id©: 1115122601024, id(d): 1115122601024
ic| c is d: True
ic| id© == id(d) == id([‘DEF’]): False
ic| id(a): 1115122601024, id(b): 1115122601024, id©: 1115122601024
ic| a is b: True, b is c: True
ic| id(a) == id(b) == id©: True

http://www.yayakq.cn/news/646071/

相关文章:

  • 哪里有网站开发服务网站开发周期安排
  • 东莞网站seo公司高校宣传网站建设
  • 游仙移动网站建设防窜货管理系统开发
  • 网站建设方案的所属行业是云栖建站
  • 网站安装系统怎么安装教程视频apache重定向wordpress
  • 做网站需要什么部门批准高级网站开发技术
  • 山东公司注册网站什么是网络营销包含哪些内容
  • 自助建网站系统源码延庆网站建设优化seo
  • 网站推广的内涵网站建设的软件介绍
  • php做的大型网站怎么样免费给网站做优化
  • 企业网站推广的方法有哪些国家职业技能培训平台
  • 邯郸做网站的公司iis怎么部署网站
  • 舟山建设网站公司seo需要掌握什么技能
  • 自己做的网站标题合肥做网站
  • 做淘客网站大型网站开发框架
  • 做网站 备案网站怎么做筛选功能的代码
  • 中国国防建设网站上海知名网站设计
  • 设计发明的网站wordpress 中文版 编码
  • 网站空间有什么用网络营销公
  • 宁晋网站建设设计优化网站建设
  • 建一个网站需要多少费用wordpress主题包
  • 单位建网站的详细步骤软件定制公司值得去吗
  • 怎么做网站推销产品在线培训平台有哪些
  • 自助建站网站建设设计公司无锡网站推广$做下拉去118cr
  • 地方网站商城怎么做老地方在线观看免费资源大全
  • 南昌网站建设哪家就好运动猿app 网站开发
  • 怎么使用服务器做网站东莞app开发定制
  • 同城配送网站建设建设网站的价格是多少钱
  • 如何设计自己想要的图片seo社区
  • 分类网站一天做几条合适app要有网站做基础知识