python3 函数参数

1、缺省参数

在定义一个函数的参数是给其传入一个默认的值,不传的时候用默认参数,缺省参数只能放在后面

一个函数可以有多个缺省参数。

def test(a, b=22)

  result = a + b

  print(result)

  return result

test(11)

test(22,33)

def test1(a, b=22, c = 55)

test1(11,c=2)   #c命名参数

def test1(a,  d, b=22, c = 55) #参数d是必须要传的

 

2、不定长参数

如果在定义形参的时候,在变量名前面加个*,加上*的形参有特殊功能

def add_num(a, b, *args):     (a, b 参数必须传)  #变量args有特殊作用,特殊的程度是,如果传递实参的个数大于形参的个数,剩下的给args ,如果多个值传给args那么他就是元组,当一个元组只有一个数据时间其表示为(1,)如果没有参数传给args那么他就是一个空元组,args必须放在末尾。

eg: 

def test (a, b, c=33, *args, **kwargs):  #**kwargs 以字典的方式存储

  print(**kwargs)     #打印出{'task':89, 'done':99}

test(11, 22, 33, task=89, done=99)

如果传入的多余的参数,且参数不带变量名,那么传给*args, 如果带变量名那么传给**kwargs,并且以字典方式保存

 

#将输入的传入的输进行相加

def sum_2(a, b, *args)

  result = a + b 

  for num in args:

  return result

 

3、拆包,元组、字典

A = (44, 55, 66)

B = {'name':'laowang', 'age':18}

def test(a, b, c,  *args, **kwargs)

  print(a)

  print(b)

  print(args)

  print(kwargs)

test(11, 22, 33 ,A , B)   #那么a是11 b是22 c是33 args是((44,  55,  66),{'name':'laowang','age':18}) kwargs是{}

如果 test(11, 22, 33 ,*A , **B)  # 那么a是11 b是22 c是33 args是(44,  55,  66)  kwargs是{'name':'laowang','age':18}))

* 和 ** 表示拆包,把元组拆成一个一个的值,把字典拆为key,value

posted on 2020-03-24 22:38  pooopun  阅读(183)  评论(0编辑  收藏  举报

导航