zoukankan      html  css  js  c++  java
  • 【python】id()函数

    来源:百度知道

    >>> a=2.0 
    >>> b=2.0 
    >>> id(a) 
    524440880 
    >>> id(b) 
    524440904 
    >>> a=2 
    >>> b=2 
    >>> id(a) 
    524425104 
    >>> id(b)
    524425104搜索

    为什么上面输出的值有些一样,有些不一样呢,求大神详细解释下。

    --------------------------------------------------------------

    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
  • 相关阅读:
    vi
    实用基本程序
    常用排序算法总结
    Windows 远程在Linux下 发布tomcat web程序
    Java 8 函数式编程
    Scanner
    Mysql【JDBC】
    RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 1 #805
    KeyError: 'module_list.85.Conv2d.weight' #657
    C语言 BIT
  • 原文地址:https://www.cnblogs.com/dplearning/p/5998112.html
Copyright © 2011-2022 走看看