python增量赋值是什么意思_关于python中的增量赋值的理解

增量赋值运算符 += 和 *= 的表现取决于它们的第一个操作对象

+= 操作首先会尝试调用对象的 __ iadd__方法,如果没有该方法,那么尝试调用__add__方法,所以+= 与 + 的区别实质是__iadd__ 与 __add__的区别,同理,

*= 操作首先会尝试调用对象的__imul__方法,如果没有该方法,那么尝试调用__mul__方法。

_ add_ 和 _ iadd_ 的区别

_ add_ 方法接收两个参数,返回它们的和,两个参数的值均不会改变。

_ iadd_ 方法同样接收两个参数,但它是属于 in-place 操作,就是说它会改变第一个参数的值,因为这需要对象是可变的,所以对于不可变对象没有__iadd__方法。

hasattr(int,'__iadd__') // False

hasattr(list,'__iadd__) // True

显然,整数对象是没有__ iadd__的,而列表对象提供了__iadd__方法。

不可变类型对象 数字

a = 123

id(a)

>>> 1688042320

a += 123

id(a)

>>> 246

>>> 1688046256

a *= 2

id(a)

>>> 492

>>> 1688052012

可变类型对象的列表

L = [1,2,3]

id(L)

>>> 4311953800

L *= 2

>>> [1,2,3,1,2,3]

id(L)

>>> 4311953800

___________________________

t = (1,2,3)

id(t)

>>> 4312681568

t *= 2

id(t)

>>> 4301348296

L1 = range(3)

L2 = L1

L1 = L1 + [3]

PS:遇到问题没人解答?需要Python学习资料?可以加点击下方链接自行获取

note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76

+操作调用的是 _ add_ 方法,该方法会返回一个新的对象,原来的对象保持不变,l1还是指向原来的对象,而l2已经指向一个新的对象。

L1 = range(3)

L2 = L1

L1 += [3]

+= 操作调用的是__iadd__方法,他会原地修改l2指向的那个对象本身的值

一道关于 += 的谜题

t = (1,2,[3,4],7)

t[2].append(5)

>>> (1,2,[3,4,5],7)

t[2] += [6]

>>> Traceback (most recent call last):

File "", line 1, in

TypeError: 'tuple' object does not support item assignment

t

>>> (1,2,[3,4,5,6],7)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Notepad++使用教程

Notepad 快捷键 大全CtrlC 复制CtrlX 剪切CtrlV 粘贴CtrlZ 撤消CtrlY 恢复CtrlA 全选CtrlF 键查找对话框启动CtrlH 查找/替换对话框CtrlD 复制并粘贴当行CtrlL 删除当前行CtrlT 当行向上移动一行F3 查找下一个ShiftF3 查找上一个CtrlShiftF 组合在文件中查找CtrlF3 查找&#x…

安卓手机刷软路由_华为路由AX3 Pro上手测评:用过最方便的路由器,没有之一...

都说"科技改变生活",但我总觉着,现如今的人们似乎被数码产品"奴役"了。比如说:之前买过某品牌路由器,设置过程之繁琐,直接让当时是数码小白的我崩溃了。自打那之后,我选购数码产品的标…

ECharts.js学习(二)动态数据绑定

Echarts 数据绑定 简单的统计表已经可以生成,不过之前图标数据都是直接写在参数里面的,而实际使用中,我们的数据一般都是异步读取的。EChart.js对于数据异步读取这块提供了异步加载的方法。 绑定多组数据 很多时候需要展示的数据不单单是一组…

黑苹果2k屏_一加手机屏幕新特性:120Hz、2K+ OLED、10bit

在发布了旗下的首款概念手机Concept One后,再次有消息显示一加将在1月13日也就是今天举办“屏幕技术沟通会”。而在发布会正式到来前,一加CEO刘作虎则在微博表示,一加已经完成了120Hz屏幕的研发。沟通会上还会聊一聊一加90Hz 流体屏引领行业后…

popupmenu java_Java基于JPopupMenu实现系统托盘的弹出菜单,解决PopupMenu弹出菜单中文乱码...

本人萌新,利用业余时间学习Java。最近在写一个GUI程序的时候遇到一个问题,系统托盘创建弹出菜单中文乱码,网上搜索很多内容都没有找到解决方案,现将个人解决方案分享给大家,希望有所帮助一、PopupMenu存在的问题标准文…

QT获取主机名称

//获取主机名 QString localHost QHostInfo::localHostName(); 转载于:https://www.cnblogs.com/amwuau/p/8021758.html

Java哈利波特死亡圣器下_如果编程语言是《哈利波特》中的人物

如果编程语言是《哈利波特》中的人物,本文是作者的一些观点,如果你有不同的看法,欢迎在留言中告诉我们。C语言每个人都在说,C语言已经死了至少十年以上了。人们对它嗤之以鼻。当然它也曾不可一世,肆虐横行,…

序列每天从0开始_【算法打卡】分割数组为连续子序列

难度:中等题目:给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个长度为 3 的子序列,其中每个子序列都由连续整数组成。如果可以完成上述分割,则返回 true ;否则&#xff0c…

linux中 /dev/null命令

/dev/null :代表空设备文件 > :代表重定向到哪里,例如:echo "123" > /home/123.txt1 :表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/d…

php会员系统源码_b2b2c商城系统会员预存款架构及源码分享

业务需求可以为预存款充值,在支付订单时使用预存款支付功能当预存款余额>商品订单总金额时,完全抵扣商品订单金额;当预存款余额架构一、 充值二、 数据结构1、会员钱包表(es_member_wallet)2、 后期可能会将会员积分等关于消费抵扣相关信息…

mongodb 去重查询 Java,mongodb篇二:mongodb克隆远程数据库,去重查询的命令及对应java语句...

另外附上mongodb eclipse插件地址: http://www.jumperz.net/update/ import java.net.UnknownHostException;import com.mongodb.DB;import com.mongodb.DBCol1.首先操作mongodb最基本命令::show databases; ---------------------显示全部数…

HTML5 规范

在学习编程的时候,每次看到那些整齐规范的代码,心里顿时对这个程序员表示点点好感,有时,比如看到自己和朋友写的代码时,那阅读起来就是苦不堪言,所以,一些基本的开发规范是必须的,是…

python提交事务_事务提交和回滚

操作方法begin; -开始事物commit; - 提交事物 Python 默认是取消自动提交的rollback; - 回撤操作, 只要操作没有执行 commit 就可以进行回滚操作, 撤回create table tb_account(accid char(4) not null,uname varchar(20) not null,balance float default 0)insert into tb_ac…

求数组的最大值php,求PHP数组最大值,最小值的代码

求PHP数组最大值,最小值的代码,需要的朋友可以参考下。代码如下:$fruits array("155::vbscript::http://www.jb51.net/list/list_114_1.htm", "1::javascript::http://www.jb51.net/list/list_3_1.htm", "2::正则表达式::http://www.jb51…

JWT.NET的使用

JWT.NET的使用 原文:JWT.NET的使用JWT是什么 JWT全称是Json Web Token,是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准( RFC 7519 ),定义了一种简洁的,自包含的方法用于通信…

正在搜索需要的文件_【数澜发布-澜寻】智能内容搜索引擎,释放“机器阅读” 潜力...

4月23日,又是一年世界读书日。知识传播的重要性在这一天被无数次提起,记录、阅读成为我们 “理解”这个世界的加速通道,但在科技力量迅猛发展的当下,阅读这件事早已不再局限于人类。人工智能应用到社会中很重要的一步就是模仿人类…

学习笔记(十一)——数据库的索引碎片、计划缓存、统计信息

1.索引碎片 数据库存储本身是无序的,建立了聚集索引,会按照聚集索引物理顺序存入硬盘。既键值的逻辑顺序决定了表中相应行的物理顺序 而且在大多数的情况下,数据库写入频率远低于读取频率,索引的存在为了读取速度牺牲写入速度&…

网络软文发布软件_星浪中合网软文写出爆款汽车营销软文的特点是什么?

在移动互联网快速发展的时代,人们都是使用移动设备来获取外界信息。过去,许多广告汽车公司都专注于线下广告,但是现在他们已经将广告费用投入了移动互联网市场。移动互联网营销方法很多,例如,软文营销是一种非常强大的…

通达oa wbupload.php,关于通达OA上传附件类型限制的设置

关于上传附件类型限制的设置有些用户在使用OA系统的过程中,要求只允许上传比如后缀名为doc,xls,ppt等的附件文件。如何设置才能实现这一点呢?下面简单介绍下设置方法。1、在该路径MYOA\webroot\inc下找到配置文件oa_config.php文件…

JAVA 代码交互率低的原因分析,深入剖析Java编程中的中文问题及建议最优解决方法...

说明:本文为作者原创,作者联系地址为:josserchaiyahoo.com。由于Java编程中的中文问题是一个老生常谈的问题,在阅读了许多关于Java中文问题解决方法之后,结合作者的编程实践,我发现过去谈的许多方法都不能清…