• python为不同的对象如何分配内存


    id方法的返回值就是对象的内存地址。

    python中会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同)。如执行a=2.0,b=2.0这两个语句时会先后为2.0这个Float类型对象分配内存,然后将a与b分别指向这两个对象。所以a与b指向的不是同一对象:
    >>> a=2.0
    >>> b=2.0
    >>> a is b
    False
    >>> a==b
    True

    但是为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法,如指向a=2,b=2时,由于2作为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次,然后将a与b同时指向已分配的对象:
    >>> a=2
    >>> b=2
    >>> a is b
    True

    如果赋值的不是2而是大的数值,情况就跟前面的一样了:

    >>> a=5555
    >>> b=5555
    >>> a is b
    False
    >>> id(a)
    12464372
    >>> id(b)
    12464396

    参考:

    1、https://www.cnblogs.com/dplearning/p/5998112.html

  • 相关阅读:
    1864: [Zjoi2006]三色二叉树
    3611: [Heoi2014]大工程
    2286: [Sdoi2011]消耗战
    2298: [HAOI2011]problem a
    2037: [Sdoi2008]Sue的小球
    P4512 【模板】多项式除法
    P4238 【模板】多项式求逆
    3771: Triple
    P3365 改造二叉树
    1191: [HNOI2006]超级英雄Hero
  • 原文地址:https://www.cnblogs.com/chen-villagehead/p/11345966.html
Copyright © 2020-2023  润新知