Python中的对象包含三要素:id、type、value
id:用来唯一标识一个对象;

type:标识对象的类型;

value是对象的值。

==是判断对象的值是否相等,也就是value,is是判断对象是否就是本身,也就是id。

 a = 'abc'
 b = 'abc'
 print a==b,a is b

 #打印结果:True,True

上面的a和b指向的应该不是同一个对象,为什么a is b打印的True呢!经过搜索,原来“在Python内部暂时储存并重复使用短字符串作为最佳化,实际上内存里只有一个字符串供a,b两个共享引用”,所以a is b打印的是True,下面就验证一下:

 c = 'a'*255
 d = 'a'*255
 print a == b, a is b

 #打印结果:True, False

上面c和d都是等于255个a的长字符串,都是指向不同的对象,打印a is b为False,也就验证了“在Python内部暂时储存并重复使用短字符串作为最佳化,实际上内存里只有一个字符串供a,b两个共享引用”这句话。接着,可以看一下a,b,c,d的id:

print id(a), id(b)
print id(c), id(d)

#打印结果:34220632, 34220632
#         33885504, 33885224

可以看到,a和b指向的是不同对象,但由于Python内部暂时存储并重复使用短字符串为最佳化,所以id是一样的,也就是a is b为True,而c和d指向的对象为长字符串,所以id就符合c和d指向为不同对象,为False。

随机推荐

  1. 打patch p0 p1区别

    如何使用patch 对于一个patch文件,有两种常用使用方法: 1.代码:cat new-patch | patch -p0 2.代码:patch -p0 < new-patch   patc ...

  2. 《Ruby语言入门教程v1.0》学习笔记-03

    10.09 第七章 7.1 模块 Ruby标准包里的 Math 模块提供了许多方法,比如:求平方根 sqrt ,使用的时候要这么写:模块名.方法名(参数).如:Math.sqrt( a*5+b ) M ...

  3. JVM探索(一)

    JVM测试的样例代码: import java.lang.management.ManagementFactory; /**  * @author zhailzh  *   * @Date 2015年 ...

  4. Python学习 1 一 Python2.75的安装及环境配置教程

    Python2.75的安装及环境配置教程 Python的语法简洁,功能强大,有大量的第三方开发包(模块),非常适合初学者上手.同时Python不像java一样对内存要求非常高,适合做一些经常性的任务方 ...

  5. windows 编程—— 常用函数 与 操作

    目录: MessageBox() 和 PlaySound() 获得窗口 或屏幕大小 获得字体大小 输出文字 屏蔽和显示控制台窗口 1. MessageBox() 和 PlaySound() Messa ...

  6. NGUI 动态字体边缘模糊,毛边的问题解决办法

    NGUI支持生成动态字体,将ttf格式的字体文件拖入工程,用NGUIFontMaker制作即可,但是制作完之后会发现字体有毛边,边缘模糊. 这时选中你生成的字体预设,在该预设的UIFont脚本上更改P ...

  7. Android ProgressBar SeekBar

    1.ProgressBar 进度条 当水平进度条完成后,隐藏该进度条,并显示一张图片 常用属性: 1. android:max 设置进度条的最大值 2. android:progress 用于指定进度 ...

  8. 与Scheme共舞

    发表在<程序猿>2007年7月刊上.不log上写帖子不用考虑版面限制,所以这里的帖子比发表的啰嗦点.赵健平编辑,Jacky,和刘未鹏都给了我非常多帮助,在这里一并谢了.免费的Scheme实 ...

  9. Excel 国家甘特图(多图)

    前言 者必画的图.我找了非常久也没找到一个专门画甘特图比較好的软件.经过研究最终用Excel画出了甘特图.网上这个资料但是没有的哟! 效果 watermark/2/text/aHR0cDovL2Jsb ...

  10. .Net程序猿玩转Android开发---(3)登陆页面布局

    这一节我们来看看登陆页面如何布局.对于刚接触到Android开发的童鞋来说.Android的布局感觉比較棘手.须要结合各种属性进行设置,接下来我们由点入面来 了解安卓中页面如何布局,登陆页面非常eas ...