位置: 编程技术 - 正文

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

  • 税款所属期
  • 税收的本质是什么意思?
  • 租土地使用权建房
  • 应交税费科目的借贷方向
  • 缴纳以前年度所得税在今年汇算清缴怎么填报
  • 税控盘费用进什么科目
  • 纳税申报现金流量表报错了可以重新申报吗
  • 一般纳税人可以转小规模纳税人吗
  • 通过物流中心再送货配货属视同销售吗
  • 行政单位其他收入包括哪些
  • 不同组织的区别主要体现在哪些方面
  • 有限合伙企业中有限合伙人承担责任的方式为
  • 本月做未开票收入,下月开票怎么做账
  • 持有至到期投资属于什么科目
  • 加工开票税率是多少
  • 企业所得税补充申报怎么报
  • 小规模税收减免
  • 应收预收账款属于什么科目
  • 银行代扣社保费
  • 计提本月城市维护建设税,教育费附加500元
  • 工会经费,职工福利费,教育经费的扣除标准
  • 劳务派遣公司的作用
  • 期间费用率的意义
  • 应收票据冲转是什么科目
  • 收据入账会计分录
  • linux format命令
  • phpstudy的ftp
  • 费用分摊的分录
  • 公司转让账务处理,账户抹平
  • 支付包装物押金是什么科目
  • php修改ip地址
  • laravel视频教程
  • 前端页面加载缓慢怎么办
  • 白 犀牛
  • php获取ipv6地址
  • 口腔门诊提供免费服务有哪些?
  • 自然语言处理属于人工智能的哪个领域
  • 结构重参数化2d pose
  • 微信php接口
  • 管家婆付款单凭证科目如何修改
  • 企业都有哪些资质
  • 帝国cms灵动标签下拉框
  • 为SQLite3提供一个ANSI到UTF8的互转函数
  • docker安装redis设置密码无效
  • 不抵扣的进项税额用不用转出
  • 政府会计资产的概念
  • 金税盘申报流程视频
  • 劳务公司可以用工资表做成本
  • 营改增和个税改革的意义
  • 企业每月利润多少合适
  • 转移固定资产是指什么
  • 个人应如何进行社会实践
  • 电子汇票接收后怎么操作
  • 企业受赠资产会计处理
  • 计提工资是否要交税
  • 原始凭证的审核要求有哪些
  • mysql索引优化是什么意思
  • XP系统升级WIN7系统
  • w10预览版新功能
  • 查看电伊
  • win10系统如何查看激活状态
  • Win10 Mobile Build 10572 其它未记录更新内容汇总
  • linux的hostname(主机名)修改详解
  • 将Red Hat 9.0 CD iso合成一张DVD iso的方法
  • mcshield.exe是什么进程
  • linux在服务器领域的应用状况
  • win10安全问题
  • ExtJS 2.0实用简明教程 之Border区域布局
  • 小郭聊一聊
  • Android---61---TabHost简单使用
  • perl ne
  • unity 游戏开发教程
  • 微软早在1985年便首次使用了安卓上饱受争议的汉堡按钮
  • jquery选择指定标签
  • vue移动端app开发流程
  • node-js
  • Python默认参数 数组坑
  • javascript基于什么的语言
  • 江苏省无犯罪证明
  • 江苏省办理准生证的app叫什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设