python的id()函数解密过程
2012-12-25 10:33
253 查看
>>> 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一样了。
>>> 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的id()函数解密过程
- 解密python的id()函数
- 解密python的id()函数
- Python爬虫学习,记一次抓包获取js,从js函数中取数据的过程
- 【python】id()函数
- python3 中双递归函数的调用过程详解与print()函数在程序调试过程中的作用
- 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码
- 存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000)
- Python中的id函数到底是什么?
- python的id()函数介绍
- php中session_id()函数详细介绍,会话id生成过程及session id长度
- Python中的id()函数_怪异现象
- python id函数 is 和 ==
- python的id()函数的一个小方面(转载)
- python基础----迭代器、生成器、协程函数及应用(面向过程实例)
- 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码
- python 函数参数赋值过程
- python的id()函数
- sql server 对储存过程和函数的加密解密