zoukankan      html  css  js  c++  java
  • python 内存相关

    v1 = [1,2,3]
    v2 = [1,2,3]
         ###########  不是同一个内存地址,各自改变,与对方无关   
    v1 = [1,2,3]    
    v1 = [1,2,3,4]
         ###########  不是同一个内存地址,第一个v1被闲置,等待被回收
    v1 = [1,2,3] 
    v2 = v1
        ###########  是同一个内存地址, v2 指向 v1 的地址,  v1 改变,  v2 也会改变
    ###  练习题
    v1 = [1,2,3] 
    v2 = v1
    v1 = 666
    print(v2)   ####  ---- [1,2,3] ----
      ## v1重新赋值与原来的v1不是同一个地址,v2 指向的是原来的v1,与重新赋值的 v1 无关
        
    v1 = [1,2,3] 
    v2 = v1
    v1.append(666)
    print(v2)   ###  ---- [1,2,3,666] ----
     ## 第二个v1是找到与原来的v1,并对其进行修改,v2 指向的是原来的v1,原来的v1改变,v2 随之改变
        
    v1 = [1,2,3]
    v2 = [44,55,v1]
    v1.append(666)
    print(v2)  ####   [44, 55, [1, 2, 3, 666]]  
    
    v1 = [1,2,3]
    v2 = [44,55,v1]
    v2[2].append(888)
    print(v1)  ##  [1, 2, 3, 666, 888]  

     

     

    补充

    • 在 python 中,在范围 -5~256 的整型和简单的字符型不重新开辟地址

    • 按道理应该重新开辟地址,但因为python有缓存机制

  • 相关阅读:
    event对象之与onmouse相关的事件触发
    对文档树进行导航
    event对象的onkeydown使用
    event的onchange方法
    函数名-函数参数坑-迭代器
    函数进阶-名称空间
    初识函数
    文件管理
    基础数据类型补充-编码进阶
    集合-缓存机制-深浅copy
  • 原文地址:https://www.cnblogs.com/weiliwei-lucky/p/11163567.html
Copyright © 2011-2022 走看看