python的id()函数解密过程

>>> 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一样了。

(0)

相关推荐

  • Python中的id()函数指的什么

    Python官方文档给出的解释是 id(object) Return the "identity" of an object. This is an integer (or long integer) which is guaranteed to be unique and constant for this object during its lifetime. Two objects with non-overlapping lifetimes may have the same

  • python学习笔记之调用eval函数出现invalid syntax错误问题

    pytho的使用和分发完全是免费的,它是一种面向对象的语言,它的.它的类模块支持多态,操作符重载和多重继承等高级概念,并且以python特有的简洁的语法和类型,OOP十分易于使用.python内置了众多预编译并可移植的功能模块,这些功能模块叫做标准库(standard library).python可以调用C和C++的库,可以被C和C++的程序调用,可以与java组件集成,可以和COM和.Net等框架进行通信,并且可以通过SOAP.XML-RPC和CORBA等接口与网络进行交互,所以,pytho

  • python的id()函数介绍

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

  • python的id()函数解密过程

    >>> 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 >>&g

  • 什么是python的id函数

    python官方给出的id解释为 id(object) Return the "identity" of an object. This is an integer (or long integer) which is guaranteed to be unique and constant for this object during its lifetime. Two objects with non-overlapping lifetimes may have the same?

  • python中id函数运行方式

    id(object) 功能:返回的是对象的"身份证号",唯一且不变,但在不重合的生命周期里,可能会出现相同的id值.此处所说的对象应该特指复合类型的对象(如类.list等),对于字符串.整数等类型,变量的id是随值的改变而改变的. Python版本: Python2.x Python3.x Python英文官方文档解释: Return the "identity" of an object. This is an integer (or long integer)

  • python中dot函数运算过程总结

    目录 基本简介 1. 向量内积 2. 矩阵乘法运算 2.1如下单个数的dot函数运算所示: 2.2如下一维数组的dot函数运算所示: 2.3如下二维数组的dot函数运算所示: 2.4如下二维数组与三维数组的dot函数运算: 2.5如下多维数组的dot函数运算所示: 总结 本文结合其他博主的一些介绍总结了dot函数运算过程 基本简介 dot函数为numpy库下的一个函数,主要用于矩阵的乘法运算,其中包括:向量内积.多维矩阵乘法和矩阵与向量的乘法. 1. 向量内积 向量其实是一维的矩阵,两个向量进行

  • python基于exchange函数发送邮件过程详解

    1.Python hasattr() 函数 描述 hasattr() 函数用于判断对象是否包含对应的属性. 语法 hasattr 语法: hasattr(object, name) 参数 object -- 对象. name -- 字符串,属性名. 返回值 如果对象有该属性返回 True,否则返回 False. 实例 以下实例展示了 hasattr 的使用方法: #!/usr/bin/python # -*- coding: UTF-8 -*- class Coordinate: x = 10

  • Python Excel vlookup函数实现过程解析

    用法:注意是用英文的逗号",",且之间没有空格. 文件名,[工作表名称,不写则默认当前激活的表],[从第几行开始,不写则默认第二行,因为很多表第一行是title],列名(第一列是要查找的元素,列名可以不连续,比如"ade") 脚本会自动把要查找的第一列进行大小写变换,去除空格等操作,下面的例子中,第一列的名字有的是大写,有的小写,前后还有空格,脚本会默认它们相同 现有Sheet1,内容如下 Sheet2内容如下 想把 Sheet1 的 B,C 列的信息复制到 She

  • Python的in,is和id函数代码实例

    1. in 和 not in -- 判断某个序列中是否存在某值 # in aa = [1,2,3,'Cathy','太平洋'] if '大西洋' in aa: print('yes') else: print('no') # no # not in if '大西洋' not in aa: print('yes') # yes else: print('no') #------------------------------------------------------- # 判断字符串是否存在

  • python实现DES加密解密方法实例详解

    本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优化 1. desstruct.py DES加密中要使用的结构体 ip= (58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32,

随机推荐