位置: 编程技术 - 正文

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

  • 一般纳税人增值税怎么做账务处理
  • 会计凭证借贷方向
  • 出纳与会计现金对不上
  • 工会经费每月必须60块钱
  • 流动负债占比低于50%,是什么结构类型
  • 小规模纳税人所得税费用怎么算
  • 成本组成计税价格公式
  • 如何开商业承兑汇票业务
  • 服装公司进布料一般进多少
  • 管理费用多计提了怎么冲
  • 年报中纳税总额怎么填
  • 汽车进口税率表
  • 社保和公积金缴费基数怎么算
  • 印刷费怎么开发票
  • 临时工工资个税怎么算
  • 城市生活垃圾处理与资源化利用工艺设计
  • 减免税金需要结转吗
  • 设备销售和安装账务
  • 汇兑损益减少怎么记账
  • 业委会是否要交税
  • 制造费用月末怎么结转到生产成本
  • 错误代码11-1114
  • 电脑右下角的弹窗怎么关
  • 网页不播放声音怎么设置
  • 员工因违反公司规章制度被辞退有补偿吗
  • 社保增加人员网上申报
  • 先征后退的增值税
  • 营业外支出所得税前可以扣除吗
  • linux如何安装
  • macbookpro任务栏
  • php封装接口
  • macbook隐藏
  • 苹果手机清理内存怎么清理微信内存
  • 坏账的税务处理方法
  • 销售货物支付运杂费要交增值税吗
  • PHP:php_strip_whitespace()的用法_misc函数
  • 增值税专用发票几个点
  • 公司购垃圾袋怎么做账
  • 运输公司汽车折旧年限
  • vscode终端显示
  • python中time模块的用法
  • 进项税转出的会计分录
  • mysql中事件的作用
  • MySQL中Distinct和Group By语句的基本使用教程
  • 公司法人的分类是什么
  • 年报资金数额是什么意思
  • ip地址跳转域名
  • 盈余公积弥补亏损不影响留存收益
  • mysql内存使用率过高
  • 印花税缴纳时间点
  • 国际货运代理免增值税
  • 承兑汇票到期取现手续费
  • 技术支持费用属于什么费用
  • 员工出差的费用怎么算
  • 公司购买理财产品账务处理
  • 工程公司存货包括哪些科目
  • 材料采购成本包括买价和采购费用
  • 冲减以前年度未开票收入开票如何申报小规模纳税人
  • 将u盘制作成u启动u盘启动盘
  • win7旗舰版系统恢复
  • linux中的rm是什么意思
  • 安装操作系统win10
  • windows8的word在哪里
  • win8.1开始菜单改win7
  • 微软反盗xp黑屏怎么办
  • centos7安装yum报错
  • Win10打不开IE浏览器
  • android中数据存储
  • Cocos2dx CrazyTetris 双线伪裁剪算面积 对于判断消除的思考(二)
  • 备份mbr引导
  • linux命令教程
  • 关于中秋节的古诗
  • jquery示例
  • nodejs如何运行html
  • Unity PlayerPrefs.DeleteAll 无效以及 PlayerPrefs文件保存位置
  • js发送请求的几种方式
  • 安卓自定义app
  • 武汉市契税减免政策
  • 个体工商户如何申报个税
  • 山东居民养老金是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设