缺省参数、不定长参数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a6864657/article/details/81229735

缺省参数:

在程序里面,定义一个函数,并给其传入了默认的参数,就叫缺省参数。
如果给函数传个参数,就用传入的; 如果没传入参数,就用默认的。

def func1(a, b=22): #缺省参数只能放在最后
    c = a + b
    print(c)

func1(2)

如果修改默认参数可以传入时指定, eg: c = 18

不定长参数

在定义某个函数时不确定时确定有多少个值时,可以在定义函数时多写一个变量*args,
*args:实参中多余的没有名字参数以元组的方式保存到*args中

**kwargs:实参中命名参数以字典的方式保存到**kwargs

def func2(a, b, *args, **kwargs):
    print(a, b)
    print(args)
    print(kwargs)

func2(33, 44, 55, 66, num1=77, num2=88)

输出结果

33 44
(55, 66)
{'num1': 77, 'num2': 88}

拆包

*在形参中添加是用来保存一些特别的值,在实参中添加是用来保存拆包

拆元组:实参掺入元组在变量前加*,定义时以元组保存。
拆字典:实参掺入元组在变量前加**, 定义时以字典保存。

如果不加相应*,则会统一到元组中去,达不到拆包的目的

def func3(a, b, *args, **kwargs):
    print(a, b)
    print(args)
    print(kwargs)

A = (55, 66, 77)
B = {'name':'laowang','age':33, 'adreess':'隔壁'}
func3(33, 44, A, B)
print('--------拆包--------------------')
func3(33, 44, *A, **B)

输出结果

33 44
((55, 66, 77), {'age': 33, 'name': 'laowang', 'adreess': '隔壁'})
{}
----------拆包------------------
33 44
(55, 66, 77)
{'age': 33, 'name': 'laowang', 'adreess': '隔壁'}

猜你喜欢

转载自blog.csdn.net/a6864657/article/details/81229735
今日推荐