已采纳回答 / 帅伦
格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。 'call %s() in %fs'是模板,%s为第一个格式符,表示一个字符串和%f为第二个格式符,表示一个浮点数,(f.__name__, (t2 - t1))中的两个元素'f.__name__和t2-t1为替换%s和%f的真实值。
2017-03-12
已采纳回答 / 慕桂英2053110
说的是上面的那段函数没有办法写成def calc_sum(): return lazy_sumdef lazy_sum(): return sum()是因为lazy_sum()中引用了calc_sum()的参数lst
2017-03-12
已采纳回答 / hgjkgsfhskg
count()函数中,fs是一个列表,它的元素不是计算出来的i*i的值,而是内部定义的函数f,你可以尝试输出f1 f2 和 f3 得到的是三个函数类型的变量,这样当你返回fs列表时,fs中就是三个函数类型的f,这三个函数除了在内存中地址不一样外,其它性质完全一样,当你调用f1() f2() f3() 时,他才会调用这些f进行计算,而不是在count函数内计算完后才append的,此时i都是3,所以结果也都是9这也是闭包的一个特点,建议你可以去百度一下python闭包在游戏中角色运动的应用
2017-03-09