【Python系列2】赋值、深度复制与传参

本文探讨Python中的赋值特性,指出对象赋值实际上是按引用传递。当需要独立副本时,介绍了`copy`函数实现浅拷贝,仅复制父对象,而`deepcopy`函数执行深拷贝,包括子对象。通过示例说明两者的区别。
摘要由CSDN通过智能技术生成

       在Python中,对象之间赋值时是按引用传递的,也就是说“b=a”指向同一内存。这样,改变b也会同时改变a。

       如果需要对b操作而不影响a,需要使用Python的内置函数进行复制:copy为浅拷贝,只拷贝父对象,不会拷贝对象内部的子对象;deepcopy为深拷贝,拷贝对象及其子对象。下面是从网上找到的一个典型例子:

import copy
  a = [1, 2, 3, 4, ['a', 'b']]   #原始对象
  b = a                          #赋值,传对象的引用
  c = copy.copy(a)               #对象拷贝,浅拷贝
  d = copy.deepcopy(a)           #对象拷贝,深拷贝
  
    a.append(5)                    #修改对象a
  a[4].append('c')               #修改对象a中的['a', 'b']数组对象
  
    print 'a = ', a
  print 'b = ', b
  print 'c = ', c
  print 'd = ', d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值