zoukankan      html  css  js  c++  java
  • python中可变类型和不可变类型数据的复制

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



    总而言之 
    对于不可变数据模型,不论通过什么办法复制,通过改变复制后的数据,均不会改变原数据的值 对于可变数据模型,除深拷贝不会改变原数据值,其他均会改变原数据值
  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/yangzhe0617/p/11038404.html
Copyright © 2011-2022 走看看