更多课程 选择中心


Python培训

400-111-8989

Python--共享引用教程

  • 发布:每日一Python
  • 来源:每日一Python
  • 时间:2017-11-30 14:47

在Python中创建一个变量并赋值(例a=3)相当于是变量对一个对象的引用,一旦变量被引用,Python会自动跟随这个变量到这个对象的连接;共享引用呢,就是多个变量引用了同一个对象。

a = "例子"

b = a #a,b都引用了“例子”这一对象a = "example"a,b

这段代码中,a先引用了"例子"这个对象,然后b也引用了“例子”这个对象,共享了同一变量;之后a被赋予了"example“这个新的对象,打印a,b,结果是('example','例子');

所以对于列表、字典这些在原处支持修改的对象,在共享引用的时候要小心一个变量的修改会影响到其它的变量。

L1 = [1,2,3]

L2 = L1

L[0] = 1111

L1,L2

L1的改变是否会影响L2的值?答案是会。打印出来L1,L2的值都是[1111,2,3];

因为L1和L2都引用了同一个对象,即同一块内存空间,而列表对象又支持原处修改,所以L1的修改就导致了共同引用空间的修改,所以引用了这块区域的变量的值都会随之改变;

如果不想这种情况发生,要拷贝对象而不是创建对象的引用,例如上述L2列表可以利用分片拷贝L1而不是共享L1的对象,这样L1的改变不会影响L2的值:

L1 = [1,2,3]

L2 = L1[:]

L1[0] = 1111

L1,L2

当然字典不能用分片技术来拷贝,应该使用X.copy()方法来调用。

本文内容转载自网络,本着分享与传播的原则,版权归原作者所有,如有侵权请联系我们进行删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:python使用PyCharm进行远程开发和调试教程
下一篇:python生成二维码的实例详解

Python IDE推荐7个你可能会错过的Python IDE

Python面试题之Python中爬虫框架或模块的区别

2021年Python面试题及答案汇总详解

python数据分析,你需要这些工具

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省