id()是python的内置函数,用于返回对象的内存地址

    无标题 - 图1

    1. In [32]: var1 = 5
    2. In [33]: var2 =var1
    3. In [34]: id(var1)
    4. Out[34]: 140725209405216
    5. In [35]: id(var2)
    6. Out[35]: 140725209405216

    上面代码中var1变量名引用指向了5这个对象,var2和var1同时指向了5,通过id函数查看对象的内存地址

    1. >>> a=1
    2. >>> id(a)
    3. 140725209405088
    4. >>> b=3
    5. >>> id(b)
    6. 140725209405152
    7. >>> c=5
    8. >>> id(c)
    9. 140725209405216
    10. >>> d=5
    11. >>> id(d)
    12. 140725209405216 #c和d变量指向同一块内存区域value是5
    13. #比较c和d变量的值是否相等,返回bool值
    14. >>> c==d
    15. True
    16. #比较c和d变量引用所指向的内存地址是否相等
    17. >>> c is d
    18. True
    1. >>> e=9999999
    2. >>> id(e)
    3. 2372337564080
    4. >>> f=9999999
    5. >>> id(f)
    6. 2372337564048
    7. >>> e==f
    8. True
    9. >>> e is f
    10. False

    由运行结果可知:
      1、Python缓存了整数和短字符串,因此每个对象在内存中只存有一份,引用所指对象就是相同的,即使使用赋值语句,也只是创造新的引用,而不是对象本身;
      2、Python没有缓存长字符串、列表及其他对象,可以由多个相同的对象,可以使用赋值语句创建出新的对象。