python的id()函数介绍

时间:2021-12-18 09:17:45 

>>> a = 2.5
>>> b = 2.5
>>> c = b
>>> a is c
False
>>> a = 2
>>> b = 2
>>> c = b
>>> a is c
True

在使用is函数的时候去打印a,b分别被赋值为2.5 和2的情况,发现:
>>> a = 2
>>> b = 2
>>> id(a)
21132060
>>> id(b)
21132060
>>> a = 2.5
>>> b = 2.5
>>> id(a)
19622112
>>> id(b)
29321464

当a,b为2的时候id相同,而为2.5的时候不同,这种情况在string字符串的时候也会出现,即当很短的a,b赋值很短的字符串的时候,它们的id值相同,而很长的则不会;

查阅了如下的文章:
http://stackoverflow.com/questions/4293408/ids-of-immutable-types
http://stackoverflow.com/questions/3402679/identifying-objects-why-does-the-returned-value-from-id-change
之后,得到一个简单的结论:解释器在对值很小的int和很短的字符串的时候做了一点小优化,只分配了一个对象,让它们id一样了。

标签:python,id()
0
投稿

猜你喜欢

  • ASP中利用正则表达式实现论坛UBB代码转换

    2008-02-29 11:49:00
  • MySQL SQL预处理(Prepared)的语法实例与注意事项

    2024-01-14 17:50:09
  • 一文带你了解Go语言标准库math和rand的常用函数

    2024-02-22 07:24:24
  • Python中的枚举函数enumerate()的具体用法

    2022-06-03 13:33:31
  • 基于Python3.6+splinter实现自动抢火车票

    2021-04-27 21:58:15
  • 再谈Python中的字符串与字符编码(推荐)

    2023-06-15 23:25:08
  • Python jieba 中文分词与词频统计的操作

    2022-08-31 17:08:14
  • 利用Python绘制一个可爱的米老鼠

    2022-01-29 14:34:30
  • mysql实现多表关联统计(子查询统计)示例

    2024-01-19 18:53:26
  • python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例

    2023-04-12 03:34:40
  • SQL Server 海量数据导入的最快方法

    2024-01-16 06:23:25
  • 用uWSGI和Nginx部署Flask项目的方法示例

    2023-12-07 22:42:37
  • Django如何实现RBAC权限管理

    2021-05-20 19:14:27
  • ASP checkbox复选框是否被选中的代码(结合数据库)

    2011-03-06 11:21:00
  • 详解为什么说Golang中的字符串类型不能修改

    2024-02-04 09:24:45
  • 详解基于 axios 的 Vue 项目 http 请求优化

    2024-05-09 15:12:47
  • Python爬虫自动化获取华图和粉笔网站的错题(推荐)

    2023-08-14 02:05:42
  • django框架基于queryset和双下划线的跨表查询操作详解

    2022-02-22 04:30:32
  • python绘图subplots函数使用模板的示例代码

    2023-05-23 06:05:01
  • python连接数据库后通过占位符添加数据

    2024-01-15 06:29:34
  • asp之家 网络编程 m.aspxhome.com