码迷,mamicode.com
首页 > 其他好文 > 详细

reduce() takes no keyword arguments

时间:2020-05-30 21:37:43      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:lambda   init   问题   语言   方式   关键字   func   python   seq   

reduce中的initial

使用

Python的常用高阶函数reduce中有一个参数initial,用作初始值

r = reduce(lambda x, y: x * y, [x for x in range(1, 3)], 10)

这样将10代入参数x和整个列表做连续运算

问题

但是看了下reduce函数时这样定义的

def reduce(function, sequence, initial=None):
	pass

于是试着把initial以关键字参数的方式使用

r = reduce(lambda x, y: x * y, [x for x in range(1, 3)], initial=10)

程序报错提示reduce() takes no keyword arguments

原因

查了下资料,大概是因为Python底层API是调用的C语言,没写函数没有实现Python特性,只能靠位置判断参数,这也是蛮坑的一点记录一下

reduce() takes no keyword arguments

标签:lambda   init   问题   语言   方式   关键字   func   python   seq   

原文地址:https://www.cnblogs.com/dream08/p/12994889.html

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