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


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



    总而言之 
    对于不可变数据模型,不论通过什么办法复制,通过改变复制后的数据,均不会改变原数据的值 对于可变数据模型,除深拷贝不会改变原数据值,其他均会改变原数据值
  • 相关阅读:
    Python基础之只接收关键字参数的函数
    Python基础之可接受任意数量参数的函数
    Django基础之创建admin账号
    GIT版本控制工具
    全站导航
    python中对url编码解码处理
    VUE安装及初始化报错解决办法
    使用Appium+python爬取手机App
    python发送QQ邮件
    docker部署flask项目
  • 原文地址:https://www.cnblogs.com/yangzhe0617/p/11038404.html
Copyright © 2020-2023  润新知