FrankJT 2021-07-18 11:25 采纳率: 50%
浏览 28
已采纳

python中,变量的身份id怎么理解

python的身份判断可以用 is eg. a is b判断。

    a = 20
    b = 20
    print(a is b, id(a), id(b))

这样会输出true。查询a和b的id,是一样的,type和val自不必说。
在网上查id属性,说是类似于c/c++的指针指向的内存空间。
如果是c语言,那么两个变量指向的内存空间必然不同,可python为何id相同呢?
也就是说a和b两个变量的内存空间相同?

    a = 20
    b = 20
    print(a is b, id(a), id(b))
    a += 50
    b += 10
    print(a is b, id(a), id(b))

对a和b进行不同的运算后,就不同了。
所以,这个id到底应该怎么理解呢?

  • 写回答

3条回答 默认 最新

  • 快ྂ乐ྂ至ྂ上ྂ 2021-07-18 11:48
    关注

    这么理解,变量是容器,值是系统给的标签。。开始你给a和b都贴了标签20,指向同一个系统内存,就是
    20所对应的地址。所以,是同一个。
    然后,a和b给个不同值,或者不同操作后,值变了,标签不一样了呀,一个贴70,一个贴30,对应的就不一样了。如果系统地址是货架,那它俩就一个放70,一个放30了。之前一样就摞一堆了,哈哈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 7月20日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误