• python中is和==的区别,地址和重新复制后,地址变化


    简单总结

    现象描述:
    '''
    一、“编辑器“中和把赋值语句放在”同一行的cmd环境“中,相同值的不同变量会指向同一个地址
    二、交互式/cmd环境中,若赋值相同值的变量在不同行输入,那么变量也会指向不同地址
    三、程序编辑器的程序运行就相当于在交互式环境中的一行进行了编译处理。
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    is 和 ==区别

    本质区别:
    is:判断的是对象的地址是否一致
    ==:判断的是内容逻辑是否相等,例如a='ajlajgl',b='ajlajgl',a == b 则是true
    
    • 1
    • 2
    • 3

    需要注意的现象

    一、运行软件或文本编辑器中的is和交互式环境运行结果可能不同

    同样的几行代码:

    a = 1000
    b = 1000
    print(a is b)
    
    • 1
    • 2
    • 3

    1、在sublime中的运行结果

    在这里插入图片描述

    2、 在cmd的交互式环境中:

    在这里插入图片描述

    3、在cmd环境中的另一种输入方式显示不同:

    在这里插入图片描述
    从结果中分析:对同一个值(不在[-5,256]之间)赋值到不同变量,若是同时编译(不是交互式的每行都编译),则地址相同;若分行编译(cmd交互式编译),则地址不同

    二、可能和值占用内存的大小有关

    变量值在[-5,256]直接就能保证同样的值在不同行编译依然会是相同地址

    参考:https://blog.csdn.net/qq_26442553/article/details/82195061
    在这里插入图片描述
    对于这种情况,可理解为,编译器保存的小值的地址;若下次还是这个值,则直接指向这个地址

    变量若是相同字符串,一直指向同一个地址

    在这里插入图片描述

    但变量是列表时,不管是不是交换环境都指向不同地址

    相同变量名的多次赋值,在交互式多行编译时,即使值相同,地址也会改变,但若写在一行,即使在交互式编译结果也一样

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    微服务架构学习与思考(14):监控和可观测性详细介绍
    Mockito 简单示例
    线性规划在多种问题形式下的应用
    【MySQL篇】事务相关知识点总结(全)
    【java期末复习题】第9章 集合
    红外物理学习笔记 ——第三章
    C语言可变参数函数及其实现
    【Linux】Ubuntu20.04版本配置pytorch环境2023.09.05【教程】
    清算、结算、南北卡支付行业概念一次说清
    深入浅出Dart》函数
  • 原文地址:https://blog.csdn.net/weixin_43794311/article/details/127877328