更多课程 选择中心

Python培训
美国上市教育机构

400-111-8989

Python培训

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编程练习题二

Python编程练习题一

Python实现降雪效果

Python中dir()、help()的使用

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省