今天在看函数返回值为函数的。
想了半天加网上查终于理解了一点,就是它将那个返回的函数只作为一个普通变量,再调用那个被返回的函数之前,这个返回函数都和普通返回值差不多
def sum_late( *args ):
def calc_sum( ):
ax = 0
for n in args :
ax = ax = n
return ax
return calc_sum
print( ' 调用sum_late的结果为: ' , sum_late(1,2,3,4) )
calc_sum = sum_late(1,2,3,4)
print( ' 调用calc_sum 的结果为 :', calc_sum() )
print( ' 调用后sum_late的值为: ', sum_late(1,2,3,4) )
输出为:
调用sum_late的结果:<function sum_late.<locals>.calc_sum at 0x000000000077DE18>
调用calc_sum的结果为:10
调用后sum_late的值为:<function sum_late.<locals>.calc_sum at 0x000000000077D2E0>
可以看到,在调用calc_sum这个返回函数之前,根本相当于没有定义calc_sum,只有在将sum_late(1,2,3,4)的值传递给calc_sum之后,才开始进入calc_sum函数体中,