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