python的对象身份比较
来源:互联网 发布:json txt格式转换器 编辑:程序博客网 时间:2024/04/28 09:50
整型对象和字符串对象是不可变对象,所以python会很高效地缓存它们。这会造成我们认为python应该创建新对象时,它却没有创建新对象的假象。请看下面的例子:
>>>a = 1
>>>id(a)
8402824
>>>b = 1
>>>id(b)
8402824
>>> c = 1.0
>>>id(c)
8651220
>>>d = 1.0
>>>id(d)
8651204
在上面的例子中,a和b指向了相同的整型对象,但是c和d并没有指向相同的浮点型对象。如果我们是纯粹主义者,我们会希望a与b能和c与d一样,因为我们的本意就是为了创建两个整型对象,而不是像b = a这样的结果。
python仅缓存简单整型,因为它认为在python应用程序中这些小整型会经常被用到。python2.5缓存的整型范围是(-1,100),python3已经有所扩大,不过这个范围是会改变的,所以请不要在你的应用程序使用这个特性。
python2.3中决定,在预定义缓存字符串表之外的字符串,如果不再有任何引用指向它,那这个字符串将不会被缓存。也就是说,被缓存的字符串将不会像以前那样永生不灭,对象回收器一样可以回收不再被使用的字符串。从python1.5起提供的用于缓存字符的内建函数intern()也已经不再推荐使用,即将被废弃。
- python的对象身份比较
- python对象身份的比较
- 对象身份比较
- python核心编程中的对象值比较VS对象身份比较
- 对象值比较VS对象身份比较
- 4.5.2对象身份比较
- Python的身份操作符
- python中俩个对象的比较方法
- hibernate中对象的身份标识
- Javascript 中函数对象的多重身份
- 4.1.4 对象身份的范围
- python对象的比较(is,==,对象大小比较>,<)
- 零基础学python-4.3 对象的比较
- 零基础学python-9.3 对象的比较
- Python 不同对象比较大小
- 计算机身份认证的技术分析和比较
- 用户和身份对象
- Python 运算符(算数 比较 赋值 位 逻辑 成员 身份 优先级)
- 摄影入门-之一-什么是单反
- hdu 1106
- 大小端及tcp程序
- samba的安装与配置
- HTTPS原理详解
- python的对象身份比较
- HTTPS的实现及其原理
- struts2自定义类型转换(2)基于StrutsTypeConverter
- Ubuntu下使用mysql
- 14.1.3 基于任务的并行度(task-based parallelism)
- SSL原理
- 装饰Jbutton
- struts2中Convention中的basePackage与locators配置种种
- .NET 线程学习笔记二