码迷,mamicode.com
首页 > 编程语言 > 详细

python3 函数参数

时间:2020-03-24 23:01:39      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:不定长参数   实参   owa   特殊   test   ret   变量   保存   result   

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

python3 函数参数

标签:不定长参数   实参   owa   特殊   test   ret   变量   保存   result   

原文地址:https://www.cnblogs.com/pooopun/p/12556139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!