位置: 编程技术 - 正文

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里!)

  • 2020年委托加工的税率是多少
  • 浅析建筑行业农民工的法律保护
  • 季报现金流量表可以不填吗
  • 个人所得税红利20%
  • 农产品核定扣除范围
  • 商贸企业收到的检测费可以抵扣进项税吗
  • 因小数点造成的误差称为
  • 专项科研经费
  • 公司还没有核税该如何进行业务汇款?
  • 公司汽车装潢和保养做什么会计科目
  • 有发票的福利费可以不交个税吗
  • 所得税税负率是多少
  • 营改增后房屋租赁如何纳税
  • 公司走税,对公司有影响吗
  • 广告代理服务计入什么费用
  • 高新企业的研究方向
  • 影响盈利能力的外部因素
  • 经营租赁交什么税种
  • 培训费和差旅费可以一起报嘛
  • 外经证作废流程
  • 医用酒精出口 需要什么条件
  • 企业所得税以前年度亏损怎么弥补
  • 增值税留抵税额会计科目
  • 跨年度的房租发票怎么做账
  • 收据怎么写比较规范
  • win10蓝牙驱动程序下载
  • linux关闭thp
  • 工程服务的采购合同范本
  • 冲回存货跌价准备
  • 投标保证金利息规定
  • 购买办公桌会计分录
  • Win11/Win10 21H2 正式版发布前,微软再次推送可靠性补丁更新 KB4023057
  • macOS 11 Big Sur 开发者预览版 Beta 7正式推送
  • 销售购物卡如何交税
  • 如何判断自己风寒还是风热
  • googlelabs
  • 【经验分享】使用了6年的实时操作系统,是时候梳理一下它的知识点了 | 文末赠书4本
  • labview oop
  • 企业所得税征前减免是什么意思
  • 以前年度损益调整
  • get_module_base
  • 企业会计日志
  • 营业外收支的账户是什么
  • 海关进口增值税专用缴款书如何抵扣
  • Windows下Postgresql下载与配置方法
  • 已缴款未入库是缴费成功了吗
  • 债权债务转让会计分录
  • 防暑降温用品进口品牌
  • 更正申报季度企业所得税
  • 珠宝首饰可以开发票吗
  • 公司减少注册资本的条件和程序
  • 坏账准备的会计处理方法
  • 小规模增值税税率2023
  • 为什么要进行结账和对账
  • 客户用个人账户转4s店开公司的机动车发票
  • 年度汇算清缴要补税怎么办
  • 售后回租融资是利好还是利空
  • 收到红字发票进项税怎么做账务处理
  • 给客户的促销费用怎么入账
  • mysql保留整数
  • 查询sql server版本
  • 透明数据网
  • CentOS6 32/64位安装Adobe Flash Player组件的方法
  • win8.1评估版
  • win10系统命令大全
  • windowsxp入门
  • linux命令怎么执行
  • win10系统如何屏蔽弹窗广告
  • win10周年版
  • win7安装方法ghost
  • linux系统修复
  • Jquery ajax加载等待执行结束再继续执行下面代码操作
  • CustomPropertyDrawer-Change the height of Property field
  • android解析
  • python 钉钉打卡定位
  • js 模块 modules
  • java dom解析
  • 河南掌上登记手机号换了,登录不进去怎么办
  • 江苏徐州如何开无犯罪记录证明
  • 地税管理员是干什么的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设