python的id()函数解密过程

yipeiwu_com6年前Python基础
>>> 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值相同,而很长的则不会;
之后,可以得到一个简单的结论就是:解释器在对值很小的int和很短的字符串的时候做了一点小优化,只分配了一个对象,让它们id一样了。

相关文章

Python结巴中文分词工具使用过程中遇到的问题及解决方法

Python结巴中文分词工具使用过程中遇到的问题及解决方法

本文实例讲述了Python结巴中文分词工具使用过程中遇到的问题及解决方法。分享给大家供大家参考,具体如下: 结巴分词是Python语言中效果最好的分词工具,其功能包括:分词、词性标注、关...

Python中使用遍历在列表中添加字典遇到的坑

""" 已知列表li = [{"key": 5}, {"key": 9}, {"key": -1}, {"key": 4}] , 定义一个函数,将该列表按照其元素的value 值进行...

Django跨域请求问题的解决方法示例

前言 本文主要给大家介绍了关于Django跨域请求问题解决的几种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 几种方法: 使用django-cors-he...

python使用Berkeley DB数据库实例

本文实例讲述了python使用Berkeley DB数据库的方法,分享给大家供大家参考。 具体实现方法如下: try: from bsddb import db except...

解决Pycharm的项目目录突然消失的问题

解决Pycharm的项目目录突然消失的问题

今天在玩pycharm的时候不知道按了其中什么按钮,然后我们的项目目录全部都不见了(一开始还不知道这个叫做项目目录)然后自己捣鼓了好久各个窗口的打开关闭,终于最后被我发现了什么~ 1....