位置: 编程技术 - 正文

Python中对象的引用与复制代码示例(python引用方法)

编辑:rootadmin

推荐整理分享Python中对象的引用与复制代码示例(python引用方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python引用方法,python 对象函数,python引用和对象的理解论文,python对象调用方法,python对象的引用计数增加,python引用和对象的理解论文,python引用和对象的理解论文,python对象的引用计数增加,内容如对您有帮助,希望把文章链接给更多的朋友!

可以说Python没有赋值,只有引用。你这样相当于创建了一个引用自身的结构,所以导致了无限循环。为了理解这个问题,有个基本概念需要搞清楚。

Python没有「变量」,我们平时所说的变量其实只是「标签」,是引用。

python中,"a=b"表示的是对象a引用对象b,对象a本身没有单独分配内存空间(重要:不是复制!),它指向计算机中存储对象b的内存。因此,要想将一个对象复制为另一个对象,不能简单地用等号操作,要使用其它的方法。如序列类的对象是(列表、元组)要使用切片操作符(即':')来做复制。

在python进行像b = a这样的赋值时,只会创建一个对a的新引用,使a的引用计数加1,而不会创建新的对象:

这样,当引用的对象是可变对象的时候(列表,字典,可变集合等),会产生意料之外的行为:

因为a和b引用的是同一对象,改变其中一个,另外一个也会随之改变。当我们想建立一个副本而不是引用时,可以复制对象。

Python中对象的引用与复制代码示例(python引用方法)

复制对象一般使用copy模块:

这样就可以了,但这种复制是一种浅复制,复制的新对象中包含的是对原始对象中的项的引用,如果对象的项为可变对象,也会产生不可控行为:

这时候就要使用深复制了。深复制将创建一个新对象,并递归地复制它所包含的所有对象:

对于不可改变的对象而言(字符串,数字,元组)等,没有必要拷贝,因为它们是不可改变的,不用担心会不经意间改动了它们。拷贝操作也只会得到原对象:

对于可变对象来(列表,字典,可变集合)来说,可以分别使用内置函数list(),dict(),set()来进行浅复制,速度是比使用copy模块快的。

列表也可以使用切片进行浅复制:

对序列数据类型(字符串,列表,元组)进行*操作时,也仅仅是复制了对象中项的引用,如果使用*创建一个多维列表:

最好是在列表推导中使用浅复制来创建多维列表,可以避免隐式的引用共享:

总结

标签: python引用方法

本文链接地址:https://www.jiuchutong.com/biancheng/377044.html 转载请保留说明!

上一篇:Python3 Random模块代码详解(python中random模块用法)

下一篇:浅谈Python中带_的变量或函数命名(python里!)

  • 厂房出租开发票怎么交税
  • 一般纳税人缴税
  • 财税筹划课程
  • 用于员工福利的会计分录
  • 提取法定盈余公积是什么意思
  • 电子税务局没有发票开具
  • 油补是福利费还是工资
  • 收到进度款开票如何做账务处理合适呢?
  • 存货跌价准备转销会影响当期损益吗
  • 加盟费摊销会计分录
  • 当月发票入库核销怎么算
  • 企业所得税期末贷方余额怎么办
  • 小规模纳税人附表一怎么填
  • 烟草消费税计算方法
  • 人工费用占销售收入比重
  • 分支机构能否随总机构认定为一般纳税人
  • 样品赠送要确认收入吗
  • 票据再质押
  • 工程质保金扣除
  • 联营店铺收取的收入如何账务处理?
  • 企业利润表中营业收入在资产负债表中有勾千盾关系吗
  • 1697509246
  • mac如何连接电脑
  • 怎么给员工购买保险
  • 超市预售卡怎么记账
  • 应缴纳增值税的公式
  • php怎么创建项目
  • 股东无偿投入的土地需要摊销吗
  • 难以置信含义
  • 小规模纳税人的条件
  • 外出培训餐费要进差旅费吗
  • 计算机领域划分
  • yolov4配置
  • js去掉数组中的空字符串
  • vue3.0中的ref
  • iscsiadm命令详解
  • php正则匹配a标签href
  • 按摊余成本计量的应收账款
  • 小规模纳税人要缴纳哪些税
  • 6月收到4月的单子怎么办
  • 金蝶软件利润表公式怎么设置
  • 办公室购买电脑计入
  • win7系统安装包在哪个文件夹
  • 本月销售商品会计分录
  • 应税污染物的计算公式
  • 实收资本可以以现金入账吗
  • 资本公积金转增股本是利好吗
  • 咨询公司评估选择标准
  • 主营业务成本带二级科目吗
  • 资产负债表的预付款项项目应根据预付账款
  • 生产企业原材料占产成品的比例
  • 统计会计主要做什么
  • mysqladmin ping
  • windows安装mysql5.7详细步骤
  • windows7无法进入睡眠
  • 如何确定我的学生学到了问题,尤其是核心素养方面
  • 苹果macbook air上怎么装红色警戒
  • vmware中安装centos7
  • windows7无法激活怎么解决方法
  • myfastupdate.exe - myfastupdate是什么进程文件 有什么用
  • pqhelper.exe是什么进程 pqhelper进程查询
  • win7文件夹怎么显示大小
  • linux防火墙命令大全
  • win8打开蓝牙设置
  • win8可以装pr2018吗
  • windows 10预览版
  • Linux使用命令行将一个文件夹移动到另一个文件夹
  • 批处理实例
  • ipc漏洞入侵的基本步骤
  • nodejs实战教程
  • 在全盘搜索以win
  • 简述javascript的主要特点
  • python中验证码校验
  • jquery实现分页功能
  • jquery定位
  • unity ugui教程
  • 租车费为何不能抵扣
  • 船舶吨税多少天缴纳一次
  • 关于新时代新征程
  • 深圳市龙华区企业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设