Python中,is和==都可以比较两个对象,但是它们的不同点在于:

1. is通过id()函数判断两个对象是否相等,==判断它们的值

>>> a = 126; b = 126
>>> a is b  //  a和b同时赋给126,id相等
True
>>> a = 257; b = 257
>>> a is b //  a和b同时赋给257,id相等
True
>>> a = 257
>>> b = 257
>>> a is b //  id(257)不是固定的,所以不等
False
>>> a == b // 值依然相等
True

2. ==可以通过对象的__eq__方法来修改

class int_number:def __init__(self, num):if type(num) == int:self.value = numelse:print("error")def __eq__(self, num):if self.value == num:return Trueelse:return False

这样我们就自造了一个int类型,下面来试验一下

>>> a = int_number(124.5)
error
>>> a = int_number(124)
>>> a == 124
True
>>> a == 126
False
>>> a is 124
False

可以看出,虽然我们修改a的__eq__方法让它“等于”124,但用is比较还是不等的。

转载于:https://blog.51cto.com/13946759/2167191

python中的is和==相关推荐

  1. 如何优雅的在python中暂停死循环?

    死循环 有时候在工作中可能会遇到要一直执行某个功能的程序,这时候死循环就派上用途了,python中死循环的具体形式大致如下 while True:run_your_code() 结束死循环 通常我们结 ...

  2. 关于python中的dict和defaultdict

    dict 在Python中如果访问字典中不存在的键,会引发KeyError异常,所以一般当我们比如统计一句话的词频时候,我们总是使用这样的处理方式: strings = ('puppy', 'kitt ...

  3. python中的新式类与旧式类的一些基于descriptor的概念(上)

    python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...

  4. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  5. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

  6. 逗号分隔的字符串转换为Python中的列表 split

    将逗号分隔的字符串转换为Python中的列表 给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符串转 ...

  7. [翻译]Python中yield的解释

    问题: Python中yield关键字的作用是什么?它做了什么? 例如,我想理解以下代码 def node._get_child_candidates(self, distance, min_dist ...

  8. 全面理解Python中的类型提示(Type Hints)

    众所周知,Python 是动态类型语言,运行时不需要指定变量类型.这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发 ...

  9. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

  10. 通过带Flask的REST API在Python中部署PyTorch

    通过带Flask的REST API在Python中部署PyTorch 在本文中,将使用Flask来部署PyTorch模型,并用讲解用于模型推断的 REST API.特别是,将部署一个预训练的Dense ...

最新文章

  1. 01二维矩阵中最大全为1的正方形maxSquare——经典DP问题(二维)
  2. MTK Android 编译命令
  3. Codeforces Round #777 (Div. 2)【未完结】
  4. Flutter入坑分享
  5. TensorFlow学习笔记之一(TensorFlow基本介绍)
  6. 从新手到Flutter架构师,一篇就够!学习路线+知识点梳理
  7. python mysql 内存_Python将系统内存使用量写入mysql数据库
  8. 微软直播马上开始,近百岗位等你来,快戳进直播间
  9. PHP中对象的引用传递
  10. Wannafly挑战赛2D Delete (最短路好题)
  11. 陈绪:7月24日阿里云上海峰会出品人
  12. libtersafe文件下载_tersafe.dll官方版下载
  13. Redhat开机丢失引导
  14. ubuntu 18.04虚拟机访问Windows磁盘或文件夹
  15. 应聘的16个经典面试问题回答思路
  16. java 注解报错_java-注解篇Annotation
  17. 2022电商年货节活动时间介绍,电商年货节红包如何领取?
  18. 安装Sql Server:以前的某个安装需要重新引导计算机以便使其更改生效。若要继续,请重启计算机,然后再次运行安装程序。
  19. 今天咱爬点不一样的!获取华为应用商店app信息!
  20. 微信公众号 修改 应用签名 不生效

热门文章

  1. Atitit 文档全文索引的索引种类 用于文本数据挖掘 搜索 数据分析 目录 1.1. Txt摘要索引。。 1 1.2. File placeholder 索引 1 1.3. Lucence索引 1
  2. Atitit 人员成本优化 实习生制度 attilax总结 1.1. 适合领域 于测试 与 轻度运维领域 轻度研发开发领域 1 1.2. 适合领域 行政领域 1 1.3. 要不要适当发放点生活补贴
  3. Atitit jfugue midi make tour attilx sumup 目录 1.1. Jyepu prob not support ,gazi nonge map trans支持简谱解决
  4. p4n 今天与朋友沟通支付云服务普及以及跨境电子商务的光辉前景
  5. paip.c++ gcc 不能捕获exception异常的解决
  6. paip.输入法编程----一级汉字1000个
  7. paip.php页面调试设置及流程
  8. Julia : 类型别名
  9. 最懂基金经理的第三方机构猫头鹰,到底是谁?
  10. 凯西·奥尼尔:盲目信仰大数据的时代必须结束 | 算法密码