一個函數能夠返回一個計算結果,也能夠返回一個函數
高階函數除了能夠接受函數做爲參數外,還能夠把函數做爲結果值返回
返回一個函數時,牢記該函數並未執行,返回函數中不要引用任何可能會變化的變量函數
使用示例spa
def lazy_sum(*args): def sum(): ax = 0 for n in args: ax = ax + n return ax return sum f = lazy_sum(1, 3, 5, 7, 9) #調用lazy_sum()時,返回的並非求和結果,而是求和函數 print(f()) #輸出:25,調用函數f時,才真正計算求和的結果 f1 = lazy_sum(1, 3, 5, 7, 9) f2 = lazy_sum(1, 3, 5, 7, 9) print(f1==f2) #輸出:False,每次調用都會返回一個新的函數,即便傳入相同的參數