【flag】python 收集参数 关键字收集参数 ~解包解包! 注意细节呀

 

 收集参数

- 未被定义的可以放入函数中的不限个数的参数

- 这些实参被收集为一个元胞数组(tuple)

- 语法:    

1 def func(*argus):
2     func_body
3 
4 # 调用
5 func(p1,p2,p3...)


关键字收集参数

- 把关键字参数按字典格式存入收集参数

- 语法:

1 def func(**kwargs):
2     func_body
3 
4 # 调用
5 func(p1=v1,p2=v2,p3=v3...)

- details:
  - 若原函数中有关键字形参 则形参对应实参外的多余参数被放入关键字收集参数中

栗子:

 1 def func(**kwargs):
 2     print('这是一个有关键字收集参数的函数')
 3     print(type(kwargs))
 4     # 访问字典中的内容格式!!!!!!!!!
 5     for k,v in kwargs.items():
 6         print(k,'=',v)
 7      
 8     
 9 
10 func(a='A',b=2,c=3)       

执行结果:

这是一个有关键字收集参数的函数
<class 'dict'> a = A b = 2 c = 3

 

参数混合使用时的调用顺序

这个不好说 ? 啦啦啦 小栗子帮忙解释下(*Φ皿Φ*)

栗子:

 1 # 开学时的自我介绍
 2 # 注意参数的顺序们
 3 def stu(name,age,*args,hobby='none',**kwargs):
 4     print('hello everyone')
 5     print('i am {0}, {1} years old'.format(name,age))
 6     if hobby == 'none':
 7         print('sorry,i am a boring teenager')
 8     else:
 9         print('my hobby is {0}'.format(hobby))
10     print('以下是收集参数')
11     # 又是收集参数的用法!!!
12     for i in args:
13         print(i)
14     print('以下是关键字收集参数')
15     for k,v in kwargs.items():
16         print(k,'is',v)
17         
18         
19 stu(name='lily',age=18)
20 print()
21 stu('lily',18,'i am glad to meet all of you','lalalalala','happy very much!!!',hobby='pianting',hobby2='singing',hobby3='eating')

执行结果:

hello everyone
i am lily, 18 years old
sorry,i am a boring teenager
以下是收集参数
以下是关键字收集参数

hello everyone
i am lily, 18 years old
my hobby is pianting
以下是收集参数
i am glad to meet all of you
lalalalala
happy very much!!!
以下是关键字收集参数
hobby2 is singing
hobby3 is eating


 

 收集参数的解包

(将参数装入list后 把list的值放入收集参数 而非把list放入收集参数)

栗子:

 1 def func(*args):
 2     for i in args:
 3         print(type(i))
 4         print(i)
 5 # 直接调用        
 6 l = [1,2,3,4,5]
 7 func(l)
 8 
 9 print()
10 # 对list进行解包(也用✳)
11 l1 = [5,4,3,2,1]
12 func(*l1)

执行结果:

<class 'list'>
[1, 2, 3, 4, 5]

<class 'int'>
5
<class 'int'>
4
<class 'int'>
3
<class 'int'>
2
<class 'int'>
1

 

 

补充:对字典格式的的访问 

?:

1 # 双层列表(嵌套列表)
2 a = [[1,2,3],['q','w','e'],['*','*','*']]
3 # 遍历
4 for x,y,z in a:
5     print(x,'-',y,'-',z)
6 # 看 它们是一一对应的

执行结果:

1 - 2 - 3
q - w - e
* - * - *

 

转载于:https://www.cnblogs.com/cherry71129/p/9436270.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值