reduce() takes no keyword arguments

Posted dream08

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了reduce() takes no keyword arguments相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

Python中错误之 TypeError: object() takes no parametersTypeError: this constructor takes no arguments(示例

解决:TypeError: object() takes no parameters

Python积累三:object() take no object!

报错处理——TypeError: Dog() takes no arguments

Python-TypeError: object() takes no parameters

在 cmake 文件中打开 no_keyword(Qt 选项)以使用 boost::signals