第11章 函数和函数式编程(4)

11.6.2 关键字变量参数(字典)

关键字变量参数应该为函数定义的最后一个参数,带**。

关键字和非关键字可变长参数都有可能用在同一个函数中,只要关键字字典是最后一个参数并且非关键字元组先于它之前出现。

>>> def newfoo(arg1, arg2, *nkw, **kw):
... print "Firsr arg: ", arg1
... print "Second arg: ", arg2
... print "No keyword args: "
... for arg in nkw:
... print "  ", arg
... print "keyword args: "
... for arg_key in kw.keys():
... print " ", kw[arg_key]
...
>>> newfoo(11, 22, 33, '44', '55', a='a', b='b', c=88 )
Firsr arg:  11
Second arg:  22
No keyword args: 
   33
   44
   55
keyword args: 
  a
  88
  b
>>> 

11.6.3 调用带有可变长参数对象函数

>>> newfoo(1, 2, 3, a = 4, *(5, 6, 7), **{'b':8, 'c':9, 'd':10})
Firsr arg:  1
Second arg:  2
No keyword args: 
   3
   5
   6
   7
keyword args: 
  4
  9
  8
  10
>>> 

注意我们的元组和字典参数仅仅是被调用函数中最终接收的元组和字典的子集。额外的非关键字值‘3’以及‘x’和‘y’关键字对也被包含在最终的参数列表中,而它们不是‘*'和'**'的可变参数中的元素。

11.7 函数式编程

11.7.1 匿名函数与lambda

lambda [arg1 [,arg2 ... argN]] : expression

python允许用lambda关键字创建匿名函数,匿名是因为不需要以标准的方式来声明。

这个表达式的定义体必须和声明放在同一行。

参数是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值