上QQ阅读APP看书,第一时间看更新
1.5.2 函数作为返回结果
函数除了可以作为参数外,还可以作为返回值,在如下的FuncAsReturn.py案例中就演示了这一用法。
01 def getCalFunc(maxNum): 02 def calSum(): 03 sum = 0 04 num=0 05 while num <= maxNum: 06 sum = sum + num 07 num = num + 1 08 return sum 09 return calSum 10 func = getCalFunc(100) 11 print(func()) # 5050 12 # Error Usage 13 print(func)
第2~8行定义的求和函数calSum之前讲过。第1行定义的getCalFunc方法是在第9行返回calSum方法,在这种写法里,入参maxNum是由最外层的getCalFunc函数传到calSum里的,所以calSum函数里能用到这个值。
在第10行,我们调用了getCalFunc方法,把计算求和的calSum方法作为返回值,赋予func对象。对于此类把函数作为返回值的写法,在调用时得像第11行那样带括号,如果像第13行那样不带括号就会出现异常。