Python增强赋值及共享引用注意事项是什么
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,这期内容当中小编将会给大家带来有关Python增强赋值及共享引用注意事项是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python增强赋值及共享引用注意事项P
千家信息网最后更新 2025年02月06日Python增强赋值及共享引用注意事项是什么
这期内容当中小编将会给大家带来有关Python增强赋值及共享引用注意事项是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Python增强赋值及共享引用注意事项
Python中的增强赋值是从C语言中借鉴出来的,所以这些格式的用法大多和C一致,本身就是对表达式的简写,即二元表达式和赋值语句的结合,比如a += b 和a = a + b 就是一致的,比如还有以下的增强赋值语句。
即增强赋值语句适用于任何支持隐式二元表达式的类型,比如"+"的多态:数字的相加和字符串的合并
数字加减
a = 1a = a + 1print(str(a))a += 1print(str(a))
示例结果:
23
字符串合并
S = 'I'S = S + ' like 'print(S)S += 'Python.'print(S)
示例结果:
I likeI like Python.
优点
简洁
减少一次a的执行,执行速度更快
针对可变对象,增强赋值会自动选择执行原处的修改运算,而不是速度更慢的复制。这就引申出我们在可变对象中可能涉及的共享引用问题。
共享引用
当我们想要扩展列表时,比如将一组元素添加到末尾,我们会怎么做?
L = [1, 2, 3]# 传统"+"法L = L + [4, 5]print(L)# 利用列表方法extendL.extend([6, 7])print(L)
示例结果
[1, 2, 3, 4, 5][1, 2, 3, 4, 5, 6, 7]
示例中第一中"+"法,即采用合并的方法,需要新创建一个对象把左侧的L复制到新列表中,然后再[4, 5]复制到新列表中。而第二种extend则是直接在内存空间列表L末尾L加上[4, 5],即速度会更快,增强赋值则是自动采用的第二种即L.extend([6, 7])和L += [6, 7]是等价的,也是最优的选择。这种合并方式虽然快,但对于可变对象的共享引用则会变的棘手些。
L1 = [1, 2, 3]L2 = L1L2 = L2 + [4, 5]print(L2)print(L1)print('-' * 21)L1 = [1, 2, 3]L2 = L1L2 += [4, 5]print(L2)print(L1)
示例结果:
[1, 2, 3, 4, 5][1, 2, 3]---------------------[1, 2, 3, 4, 5][1, 2, 3, 4, 5]
我们可以从示例中看到如果同一个可变对象赋值了多个变量,那么在破坏共享引用结构时,就应该对可变对象拷贝后在进行操作。
上述就是小编为大家分享的Python增强赋值及共享引用注意事项是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
对象
示例
可变
结果
事项
注意事项
就是
表达式
语句
速度
一致
内容
字符
字符串
数字
方法
更快
末尾
分析
选择
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
语音社交软件开发
数据库工程师属于什么部门
河北安卓软件开发多少钱
服务器的网络进不去
乌班图系统怎么连接到其它服务器
对数据库进行规范化
数据库与表
vidon服务器
数据库密码 数据库链接配
软件开发总监不具备岗位能力
七夕主题软件开发
u8可以直接把数据库文件删除吗
旅游软件开发风险分析模板
小班网络安全教案及反思
文献数据库毕业论文
广播电视技术网络安全题
科技互联网悟空回答
武汉混合现实软件开发
计算机没有dns服务器怎么解决
navivat导出数据库
excel 一整列数据库
网络技术等级
能传图片的数据库
网络安全守土有责守土尽责
软件开发干不下来
苹果数据库需要哪些属性
非关系型数据库有主键吗
网络安全手抄报模板大全简单
深圳联胜软件开发
杨浦区创新软件开发常见问题