zoukankan      html  css  js  c++  java
  • python中的is和==

    is和==
    Python中的对象包含三要素:id、type、value
    id方法的返回值就是对象的内存地址
    其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值
    is 判断的是a对象是否就是b对象,是通过id来判断的
    == 判断的是a对象的值是否和b对象的值相等,是通过value来判断的

    但是为了提高内存利用效率对于一些简单的对象,如一些数值较小的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、是py模块文件,在同一个模块内,相同的常量对象只分配一个存储单元
    2、是python解释器,这个才有-5~257 的小数优化

     

     

  • 相关阅读:
    窗口宽高 滚动条滚动距离 元素的文档坐标和窗口坐标
    parentNode parentElement childNodes children
    ffmpeg 提取mp3
    Linux修改时区的正确方法
    pip
    wireguard
    Nextcloud挂载谷歌云盘搭建
    ts合并
    screen
    google drive
  • 原文地址:https://www.cnblogs.com/nmap/p/9316067.html
Copyright © 2011-2022 走看看