最赞回答 / a412739861
因为f(i)在i的值没发生变动的时候,就已经完成计算了。所以f(i)是已经算出来的具体数值了而非之前的调用函数——lazy_sum之类的效果。这个数值已经计算好了。然后i继续迭代。与这里的f(i)已经无关了。
2015-03-27
最新回答 / ffan
对,执行f1, f2, f3 = count()的时候,不会去运行def f():这个函数,但是for循环却会一直执行,而且每次都会将f()追加到fs,但因为没有传入i值,所以每次循环下来追加的都是f(),即为同一个数值,当然会覆盖掉之前的f()!!所以当输入print f1()的时候,此时运行def f():这个函数的时候,i值变为3,返回的就是9了。不知道理解的对不对,如有错,望指正!!
2015-03-27
最赞回答 / 米乐乐果
参考https://docs.python.org/3/library/functions.html?highlight=property#property
2015-03-26