• (一)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
  • 相关阅读:
    VS快捷键
    IIS部署WCF
    WLAN的优点
    局域网与WAN比较
    局域网拓扑结构
    局域网协议
    局域网介绍
    wifi主要特性
    wifi发展前景
    Wi-Fi与WAPI主要区别
  • 原文地址:https://www.cnblogs.com/jack-zh/p/10810680.html
Copyright © 2020-2023  润新知