为什么reduce不接受关键字传参
来源:12-5 reduce
little_forest
2019-05-11
a = reduce(lambda sum, item: sum + item, lisT, initial=10) 会报错
TypeError: reduce() takes no keyword arguments
写回答
4回答
-
我看了下官方文档,文档里给出的reduce签名只是一段伪代码def reduce(function, sequence, initial=None)。这并不是说这里就能传关键字。而且,你不觉得这第三个参数传关键字很多余吗?本身这里就是个可选参数,且有特定 意义。至于说,为什么不能传关键字参数,我觉得只能去找找底层的C实现代码来看看。但我并不认为是因为Cpython的实现所以不能做关键字参数。而且这个问题我觉得,直接搜索也基本找不到答案。因为个人认为这个问题的关注点很偏。所以就只有看源码了。
012019-05-12 -
7七月
2019-05-11
这个第三个参数是reduce函数的设计,和你自己定义的函数又没有关系,为什么一定要传入一个关键字呢?就好比,我设计一个参数,我不支持关键字,你一定要传入关键字吗?
012019-05-12 -
7七月
2019-05-11
我能问个问题吗?你为什么一定要在第三个地方加上个关键字参数呢?第三个参数就是初始值,加关键字到底是啥意思呢?
012019-05-12 -
7七月
2019-05-11
不接收就是不能接收呀。。。。
042019-05-11
相似问题