zoukankan      html  css  js  c++  java
  • (一)Python入门-2编程基本概念:12同一运算符-整数缓存问题

    一:同一运算符

      同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。

    运算符 描述
    is  is是判断两个标识符是不是引用同一个对象
    is not  is not 是判断两个标识符是不是引用不同对象

      is 与 == 区别:
        is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。
        == 用于判断两个变量引用对象的值是否相等,默认调用对象的 __eq__()方法。

    二:整数缓存问题

      Python仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来,而并非是所有整数对象。需要注意的是,这仅仅是在命令行中执行时,而在Pycharm或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化(范围是[-5,任意正整数])。

    总结:

      1、is 比较两个对象的 id 值是否相等,是否指向同一个内存地址;

      2、== 比较的是两个对象的内容是否相等,值是否相等;

      3、小整数对象[-5,256]在全局解释器范围内被放入缓存供重复使用;

      4、is 运算符比 == 效率高,在变量和None进行比较时,应该使用 is。

      【操作】同一运算符测试

     1 >>> a=1000
     2 >>> b=1000
     3 >>> a == b
     4 True
     5 >>> a is b
     6 False
     7 >>> id(a)
     8 1799963429808
     9 >>> id(b)
    10 1799964263632
    11 >>> c = 10
    12 >>> d = 10
    13 >>> c is d
    14 True
    15 >>> id(c)
    16 140735929836656
    17 >>> id(d)
    18 140735929836656
  • 相关阅读:
    GeneXus笔记本—城市级联下拉
    GeneXus笔记本—获取当月的最后一天
    GeneXus笔记本——创建一个知识库 哈哈哈哈!
    GeneXus笔记本——入门篇
    Android Studio 学习笔记1.1 创建自己的第一个安卓项目并且打包APK
    初入Android Studio的我
    随笔
    在Azuer创建自己的Linux_VM
    获得自己电脑的SSH公匙
    数据库内连接、外连接以及左右连接的区别
  • 原文地址:https://www.cnblogs.com/jack-zh/p/10810680.html
Copyright © 2011-2022 走看看