在python中,string,tuples,和numbers是不可更改的对象,而list,dict,set等则是可以修改的对象。
不可变类型:变量赋值a = 5 后再 赋值 a = 10,这里实际是新生成一个int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值la=[1,2,3,4]后再赋值la[2]=5则是将list la的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
不可变对象,传递的是对象的值,不是对象本身,如果修改值,修改的是另一个复制的对象,不会影响原来对象的本身
可变对象,传递对象自己。函数内部如果修改值会影响对象本身。
------------------------------------------------------------------------------------------------------------------------------------------------------------
*args :是接受所有未命名的参数(关键字)
**args:是接受所有命名的参数(带关键字的)
def num(a,b,*args,**args2):
print(a)
print(b)
print(args) #args 是一个元组 ('c', 'd')
print(args2) #字典数据类型 {'age': 4, 'sex': '男生'}
num('a','b','c','d',age=4,sex='男生')