Python爬虫、数据分析与可视化:工具详解与案例实战
上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行那样不带括号就会出现异常。