1.传递可更改对象与不可更改对象区别
Python的可更改类型包括:列表List、字典Dictionary、集合Set
当传递的参数是可更改类型时,这就相当于是C++的引用传递,函数内部对参数进行更改,函数之外也会进行更改,因为操作的同一个数据。
Python的不可更改类型包括:元组Tuple、字符串String、数字Number
当传递的参数是不可更改类型时,这就相当于是C++的值传递,函数内部对参数进行更改,函数之外不会进行更改,因为操作的是一个复制品。
2.关键字参数、默认参数、不定长参数、强制位置参数
2.1关键字参数
def sum(a,b):......
#调用
sum(a=3,b=4)#正确
sum(b=3,a=4)#正确
2.2默认参数
def sum(a,b=3):......
#调用
sum(2,5)#正确
sum(6)#正确,此时a是6 b是3
注意,非默认参数必须要在默认参数之前
2.3不定长参数
两种情况:
2.3.1加一个*的不定长参数 这种参数会以元组的形式导入
def sum(a,*var_tuple):print(a)print(var_tuple)
# 调用
sum(2,4,6)
运行结果为:
2
(4, 6)
2.3.2加两个**的不定长参数 这种参数会以字典的形式导入
def sum(a,**var_dict):print(a)print(var_dict)
# 调用
sum(2,b=4,c=6)
运行结果为:
2
{‘b’: 4, ‘c’: 6}
注意,两个*的不定长参数,传入时一定要使用关键参数方式