位置: 编程技术 - 正文

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

  • 私车公用如何避税
  • 增值税的账务处理办法
  • 小微企业做什么
  • 本年已交税费怎么算
  • 政府回购土地免税政策
  • 咨询服务费发票属于哪个大类
  • 现金日记账承前页过次页
  • 银行多扣钱可以多倍赔偿吗
  • 运费开进发票
  • 购买办公室电脑桌分录
  • 房地产分期开发的标准
  • 什么是成本核算你觉得成本核算重要吗为什么
  • 医院的固定资产是由财务负责的吗?
  • 小规模纳税人发票可以抵扣吗
  • 小规模企业税务筹划
  • 修理时换下的废品配件怎么处理?
  • 跨年度多计提的印花税怎么冲回
  • 代扣代缴手续费要交增值税吗
  • 怎么查企业的增值税纳税额
  • 计提工资是计提当月的还是上个月的
  • 营业收入销售收入计算公式
  • 出口佣金比例
  • 股东退股未分配股利
  • 企业生产过程中的一个安全问题必须
  • 怎么写会计凭证
  • 资产负债表怎么看平不平
  • 老大心态是什么意思
  • 银行结算账户的种类
  • 现金付款凭证是什么意思
  • 企业债券利息收入计入什么科目
  • 承兑汇票到期超过10天怎么办
  • 前端基础知识总结
  • python的复制命令
  • echarts快速上手
  • 完美怎么用
  • php无限分类实现不实用递归
  • 调出command命令窗口
  • 汇兑损益计算方法有哪些
  • 上年折旧费多计提了,本年怎么调
  • 小规模纳税人享受小微企业优惠政策
  • 资金占用费怎么开票
  • 厂房转租会计分录
  • 织梦系统网站搭建教程
  • mysql有输入输出语句
  • 增值税年末所有都要结平吗
  • 企业年度关联业务往来报告表必须填吗
  • 建筑服务包括哪些内容
  • 退去年的销售账务如何处理
  • 个体工商户财务怎么做账
  • 高新技术企业研发费用归集
  • 物流公司的修理工资高吗
  • 加油预付卡销售 IC卡充值
  • 现金收款的程序是什么
  • 增值税专用发票丢了怎么补救
  • 建筑企业总公司施工可否由分公司开发票
  • mysql如何实现多表查询
  • SQL server不存在或拒绝访问 u8
  • mysql理论知识
  • 电脑windows不可用怎么办
  • os x10.8
  • 电脑系统 win7
  • 安卓闹钟软件下载
  • 安卓笔记软件squid使用方法
  • Unity3D游戏开发pdf
  • csh,tcsh,bash,sh等shell的区别
  • 开通局域网共享工具
  • unity3d cant add script
  • nodejs如何运行html
  • jquery.form
  • Unity 管理www类访问的写法
  • python 字典的字典
  • javascript gui
  • jquery弹出框样式大全
  • jQuery animate easing使用方法图文详解
  • jquery实例
  • 领导班子和领导干部年度考核
  • 济宁税务局王燕利
  • 北京环球影城服装
  • 2023年印花税税目表
  • 洛阳市房屋契税新政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设