已采纳回答 / Rocol
同学你使用的是Python3吧!在Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里。用的话要 先引入from functools import reduce
2018-01-18
已采纳回答 / 慕仔2331887
第6行返回的是lazy_prod函数的结果,不是lazy_prod函数本身。所以第8行f接收的是一个数值而不是函数,到了第9行执行的时候其实是执行的一个数值,所以会报类型错误。
2018-01-16
已采纳回答 / weibo_倔强不屈的颜小贱95_0
对,self.numbers这个在__init__中赋值的,所以是这一类的实例的属性,你把numbers放到__init__的参数位子,你在实例化对象是就必须给它这么一个L,否则报错的。
2018-01-14
已采纳回答 / AntonioQu
在Python 3.x, 取消了 cmp 参数, 只保留了Key Function参数。正确代码如下:<...code...>In Py3.0, the cmp parameter was removed entirely (as part of a larger effort to simplify and unify the language, eliminating the conflict betw...
2018-01-10
已采纳回答 / nikeeeela
def calc_prod(lst): def lazy_prod(): def f(x,y): return x*y return reduce (f,lst,1)f = calc_prod([1, 2, 3, 4])print f()按照题目预设是要print f() 这个函数由于reduce这个内置函数并不能调用f()所以需要搭建一个函数来做调用def lazy_prod(): def f(x,y): ret...
2018-01-02
已采纳回答 / 慕无忌7475743
我也在学习过程中,我是这样理解的:x=f() : 因为f()它的返回值是一个funtion, x就是一个函数,当你再调用x()时就会真正的去调用g()这个funciotn.我在执行f()和x=f()都打印了“call f()...” 当你x=f(),这个过程是调用了f(),没有调用g().只是返回了g()函数我用的是python 3.6.3的版本。
2017-12-29
已采纳回答 / 安妮的奇幻仙境
感觉有些乱,大概说下我的想法吧。你的performance传递的factor((10)),我觉得已经不是一个函数了,而是传递的一个值吧,factoral((10))可以认为是一个函数执行后得到的返回值。<...code...>
2017-12-28