Dongxing's Wiki Dongxing's Wiki
首页
  • 剑指 Offer
  • LeetCode
  • 算法与数据结构
  • Python 语言
  • Web 开发
  • Hive
  • Elastic Search
  • 机器学习
  • NLP
  • 检索技术
  • 数据分析
  • 经验笔记
  • Linux 配置
  • 博客进化记
  • 杂谈
GitHub (opens new window)
首页
  • 剑指 Offer
  • LeetCode
  • 算法与数据结构
  • Python 语言
  • Web 开发
  • Hive
  • Elastic Search
  • 机器学习
  • NLP
  • 检索技术
  • 数据分析
  • 经验笔记
  • Linux 配置
  • 博客进化记
  • 杂谈
GitHub (opens new window)
  • 语法

    • conda常用命令整理
    • Python、Django 中使用 logging 便捷处理日志记录
    • Python 中的 is 和 ==
    • Python 中的堆和优先队列
  • Web

    • 使用django快速搭建微信公众号后台服务
    • Django 常用操作笔记
    • 使用haystack实现django全文检索搜索引擎功能
    • django session何时被修改
  • Python
  • 语法
anthony
2019-08-04

Python 中的 is 和 ==

is 比较的是两个对象的 id 是否相同,可以理解为指针是否指向同一个内存地址;

== 比较的是值是否相同,默认通过调用对象的 eq() 方法来比较值。

需要注意一些情况,比如

a = 256 b = 256 此时 a is b 是True,因为 Python 中[-5, 256]之间的整数对象做了缓存,所以ab指向同一个空间。

而 a = 1000, b = 1000 此时is就不相等了。

另外就是 None 在判断是否为空时, is 和 == 都可以,因为 None 应该也是做了缓存,不同的 None 都指向同一个空间。用is的话maybe效率会高一些,因为不需要经过 eq 函数,直接比较地址即可。

上次更新: 2020/09/19, 22:09:00
Python、Django 中使用 logging 便捷处理日志记录
Python 中的堆和优先队列

← Python、Django 中使用 logging 便捷处理日志记录 Python 中的堆和优先队列→

Theme by Vdoing | Copyright © 2017-2023 anthony 京ICP备17072417-3
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式