最赞回答 / 慕田峪2730464
在count函数里的循环只是定义了三个函数f,并把它们加入到fs列表中,最后count返回的是fs列表,运行f()执行的是 def f(): return i*i这段代码。此时由于i=3,故函数f1,f2,f3返回值均为9
2016-07-12
最新回答 / CuiYS
lazy_sum()相当于calc_prod(lst)的内部函数,所以calc_prod(lst)的形参lst相当于该函数内部的“全局变量”,在整个calc_prod(lst)函数范围内都是“可见的”,即lazy_sum()也是可以见到lst的,所以lazy_sum()可以直接使用lst。(我也是刚刚弄清楚这个问题,回答比较粗浅,希望见谅)
2016-07-12
最赞回答 / 熊xd
一个占位符,可以了理解为什么都不做。一般用于空的语句块,因为语句块不能为空,但你确实是在里面不写东西,python会出错,加个pass就没问题了。有很多例子:<...code...>这里创建了一个名为EnterError的Exception(所有错误的基类)的子类,但本身没用,那为什么还要创建呢?原因:<...code...>如果不是数,就会引发一个错误(raise就是引发错误),类型为我们自创的EnterError,说白了就是我们创建了一个名字响当当的错误。
2016-07-08
最新回答 / CuiYS
在答案的体系下是不行的,因为它后面的代码要求它必须返回一个函数(f = calc_prod([1, 2, 3, 4]) print f() 。) 而第三个定义的函数只是用于计算乘积,为第二个函数所利用,而第一个函数返回第二个函数,所以可以把第二个函数看成一个传导介质。当然看起来很绕,这主要是编者用来给初学者联系而已,当然还有其他简洁的方法,比如匿名函数什么的
2016-07-07
最赞回答 / qq_城南以南_03468985
定义了一个函数 它可以任意传入多个参数 用t1记录开始执行函数时的时间 用R接受调用f()后的结果 在用t2 记录函数调用后的时间 t2-t1大致就可以表示执行该函数所用的时间
2016-07-04