文中例子:f()這里輸出10?
def calc_sum(lst):
? ?def lazy_sum():
? ? ? ?return sum(lst)
? ?return lazy_sum
>>> f = calc_sum([1, 2, 3, 4])
>>> f
>>> f()
10
1.最后一步這里f()沒有輸入東西,為什么輸出結果是10呢?這種f()的格式是什么意思呢?
2.我嘗試f([1,2,3])提示我不能輸入:TypeError: lazy_sum() takes no arguments (1 given)
? 我就猜測文中這里f = calc_sum([1, 2, 3, 4])=lazy_sum([1,2,3,4])=sum([1,2,3,4])=10
? 是不是讓f是一個數字了呢??但是我嘗試print f 是沒有輸出的
哪位大神能告訴我這個地方f 到底是什么?f()又是什么呢?
2016-08-31
f=calc_sum() ? ?--->返回值:無
f ? ? ? ? ? ? ? ? ? ? ? ?---> 返回函數:lazy_sum()
f() ? ? ? ? ? ? ? ? ? ? ---->返回值:lazy_sum的值
2015-04-01
# 請仔細往下看
>>> def calc_sum(lst):
? ?def lazy_sum():
? ? ? ?return sum(lst)
? ?return lazy_sum
>>> f = calc_sum([1, 2, 3, 4])
>>> f????# 函數名是一個對象(其實就是個地址) 指向0x022DFF70這個空間
<function lazy_sum at 0x022DFF70> ? # ?這里講到了 lazy_sum 是一個function(函數)
>>> f() ?# 函數地調用當然要有括號了呀
10
>>>?