最赞回答 / Humanlike
传入 r 和 f 的区别就在于传入时函数 f 是否执行。如果传入的是 r ,函数 f 会先执行,fs 里存的是三个指向函数 g 的变量,此时 i 已经传给 j ,由于函数 g 需要使用 j ,所以当前的 j 会在内存中保存,所以通过 f1() 可以得到正确乘积。如果传入的是 f ,函数 f 没有执行,所以 fs 里存的是三个指向函数 f 的变量,由于函数 f 有一个形参 i ,所以当通过 f1() 调用函数 f 时需要传入参数,违背了题意。
2018-05-22
最新回答 / 惠小轩
相当于 这个第二个比较函数 是一种比较规则 ,默认的是x<y 返回-1 表示放在前面 ,x>y 返回1 表示放在后面,0 表示一样大。加上符号后 就改变了原来的规则 x<y返回1 放在后面 以此类推 。sorted函数根据这个相反的排序规则进行排序。我是这么理解的
2018-05-22
最赞回答 / 慕粉3321357
装饰器 ,和闭包 是有关系的, 有了闭包, 才会有装饰器. 闭包 其实 一个函数+ 自由的变量. 这个就是闭包 . 包含了自由变量的函数就是闭包. 装饰器,就是装饰一个函数的函数, 返回一个 函数对象. 可以看下 这个链接.闭包与装饰器简单概括
2018-05-20
最赞回答 / Mark_____
Python帮助文档中对sorted方法的讲解:sorted(iterable[,cmp,[,key[,reverse=True]]])作用:返回一个经过排序的列表。第一个参数是一个iterable,返回值是一个对iterable中元素进行排序后的列表(list)。可选的参数有三个,cmp、key和reverse。1)cmp指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,...
2018-05-14
最赞回答 / 慕少9221509
在Python 3里,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在fucntools 模块里使用前需要先引用: from functools import reduce
2018-05-09
最赞回答 / Mark_DUT
纯手打:以log函数为例(自己去看代码):理解:设一个函数g,此时调用log函数,g=log(f),f为乘积函数。那么请认真思考,g=?很简单,既然你调用了log函数,那么肯定等于log函数的返回值,也就是return后面的东西。g=fn。同样的道理,fn=?在内部函数可以看到,fn等价于一句print语句(先不要管他的内容)+一个return值fn=print+f(x)。那么f(x)=?f就是你自己拿过来用的,要代入的一个函数。也就是此题中的乘积函数。所以整个分析过程就像剥洋葱一样,从外部开始考察,g=...
2018-05-07