python函数实例解析_python支持返回函数的实例解析
這篇文章主要介紹了python支持返回函數的實例解析,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
最近接觸python,看到了python中返回函數的概念,以前只接觸過函數返回值,比如python就可以返回int,str,list,dict等等類型數據,這里要說的是python還支持返回函數。
首先看看python支持返回函數的基本語法def f():
print 'call f()...'
# 定義函數g:
def g():
print 'call g()...'
# 返回函數g:
return g
這里,最外層的函數f會返回一個函數g,也就是函數g本身;
下面看看函數調用的過程;(接上面)>>> x = f() # 調用f()call f()...>>> x # 變量x就是上面一個最外層函數返回的函數(不是函數值)
>>> x() # x指向函數,因此可以調用,這里就是調用內層函數x()的過程call g()... # 調用x()就是執行g()函數定義的代碼只返回函數的作用:
返回函數可以把一些計算延遲執行。例如,如果定義一個普通的求和函數:def calc_sum(lst):
return sum(lst)
>>>calc_sum([1,2,3,4])
結果直接是:10
但是,可以通過返回函數思想寫代碼,就可以“延時計算”def calc_sum(lst):
def lazy_sum():
return sum(lst) return lazy_sum
下面是調用:
注意,下面代碼并沒有對函數進行執行計算出結果,而是返回函數。>>> f = calc_sum([1, 2, 3, 4])
>>> f
對返回的函數進行調用時,才計算出結果>>>f()10
下面是一個例子:
請編寫一個函數calc_prod(lst),它接收一個list,返回一個函數,返回函數可以計算參數的乘積。
思想:先定義能計算乘積的函數,再將此函數返回。def calc_prod(lst):
def lazy_prod():
def f(x,y):
return x*y
return reduce(f,lst,1)
return lazy_prod
f = calc_prod([1, 2, 3, 4])
print f()
相關推薦:
總結
以上是生活随笔為你收集整理的python函数实例解析_python支持返回函数的实例解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10一按右键就闪屏_升级Win10
- 下一篇: python中long类型_浅谈pyth