函数、深浅拷贝、可变与不可变

7.31周三
可变与不可变:
不可变 :只要改变变量的值则地址发生变化,则认为此类型是不可变的
int str float tuple bool
可变类型:内容发生改变,但是地址没有发生改变,则认为此类型是可变的
list set dict
浅拷贝和深拷贝:
拷贝: 其实就是将容器内数据,备份一份到新的地址
浅拷贝:可变类型共用的是同一个地址(里面的内容改变,但是地址不会发生改变)
不可变类型一开始是共用的,但是如果有发生改变的则地址就会发生改变了
list1.copy() copy.copy(list1)
深拷贝:列表中可变类型的元素,会有一个新的地址,而不是像浅拷贝一样共用一个地址
copy.deepcopy(list1)

函数: 目的: 减少代码冗余,使一些重复的代码定义在函数中
参数:普通参数,默认值参数,关键字参数,可变参数,拆包,装包
参数的个数:要求定义函数时的个数与调用函数时个数要一致
参数的类型: str int float bool tuple --》不可变的参数给的是值(传值)
list set dict ---》 可变类型函数传递的是地址(传址)
默认值参数: 在定义函数的时候,对某个参数设置一个固定的值 (如:b=10)
在定义默认值的时候必须要放在参数的后面,否则报错
关键字参数: 在调用的时候通过关键字的方式明确指明值是给哪一个参数的
可变参数: def 函数名(*args,**kwargs):
args --->() 底层会将所有的位置参数存放到args
kwargs -->{} 字典 会将所有的关键字参数放到字典中
返回值



















'''

猜你喜欢

转载自www.cnblogs.com/wypy520/p/11278096.html