• python中可变类型和不可变类型数据的复制


    常见的复制方式有以下5种
    第1种:通过等号[=]复制 - 不论可变还是不可变数据类型,通过[=]复制后都指向同一个内存地址; - 改变复制后的数据(例子中的anotherStr,anotherList),原数据中不可变数据模型值未改变,可变数据模型值改变 - 第2种:通过工厂方法复制 - 不可变数据模型复制后指向同一个内存地址,可变数据模型指向不同地址; - 改变复制后的数据,原数据中不可变数据模型值未改变,可变数据模型值改变 - 第3种:通过[:](值传递)复制 - 不可变数据模型不涉及;可变数据模型指向不同内存地址; - 改变复制后的数据),原数据中不可变数据模型值未改变,可变数据模型值改变 - 第4种:通过浅拷贝(copy)方法复制 - 不可变数据模型复制后指向同一个内存地址,可变数据模型指向不同地址; - 改变复制后的数据,原数据中不可变数据模型值未改变,可变数据模型值改变 - 第5种:通过深拷贝(deepcopy)方法复制 - 不可变数据模型复制后指向同一个内存地址,可变数据模型指向不同地址; - 改变复制后的数据,原数据中不可变、可变数据模型值均未改变



    总而言之 
    对于不可变数据模型,不论通过什么办法复制,通过改变复制后的数据,均不会改变原数据的值 对于可变数据模型,除深拷贝不会改变原数据值,其他均会改变原数据值
  • 相关阅读:
    获取jsonPath的节点名称
    如何删除 macOS High Sierra 上的 swapfile
    Prototype fake it till make it.观后感
    intellij idea 初步环境熟悉
    一个比较综合的项目--》>图片缓存,下拉刷新等
    写的很好的博客->有关性能优化、图片缓存等
    layout优化之-》viewStub,requestFocus,merge,include
    有关ActionBar
    android:installLocation 解析
    Android开发效率—Eclipse快捷键
  • 原文地址:https://www.cnblogs.com/yangzhe0617/p/11038404.html
Copyright © 2020-2023  润新知