深拷贝与浅拷贝

深拷贝与浅拷贝

  • 拷贝:将容器内的内容备份到新的地址

浅拷贝

  • 浅拷贝:可变类型公用同一个(里面的内容改变,但是地址不会变化)。对于不可变类型,一开始公用的,但是一旦改变则地址变化
1
2
3
4
5
6
7
8
list1 = [1,2,3,4,5]
list2 = list1.copy()



list1 = [1,2,3,4,5]
import copy
list2 = copy.copy(list1)

深拷贝

  • 深拷贝:可变类型单独创建不再共用。对于不可变类型,一开始公用的,但是一旦改变则地址变化
1
2
3
list1 = [1,2,3,4,5]
import copy
list2 = copy.deepcopy(list1)

ls()

可变类型与不可变类型

可变类型与不可变类型

可变不可变:

  • C语言中,改变变量值,变量地址不变。但是Python中相反,改变变量,地址居然变化了。说明换了新的变量来存储这个值
  • 可变不可变关键看地址是否发生改变,如果变化,就是不可变,如果没变化,就是可变
  • 可变不可变本质在于存储变量的地址是否发生改变,改变=不可变,为改变=可变
  • 可变不可变 = 这个变量的地址,其存储的内容是否可以直接修改

不可变:只要改变变量的值,地址发生变化
* int str float tumple bool
可变:内容改变,地址没有改变,则认为此类型为可变类型

  • list set dict

函数传参

函数参数

参数

实参形参

参数个数

要求定义函数时,实参形参数量一致

参数类型

普通参数

默认值参数

关键字参数

拆包

装包

可变参数

不可变参数

返回值