Python------回調函數

個人理解

  1. 其實本質上就是一種調用。
  2. 表現是把一個函數當做一個參數調用。
  3. 目前理解到的有主函數,中間函數,回調函數三個部分組成。
  4. 與普通調用不同的是,在執行過程中,是先執行中間函數中的內容,再執行的各個回調函數。

自己根據網上的一些代碼案例,進行理解.

callback_demo.py

from even import *
#中間函數
#接受一個生成偶數的函數作爲參數
#返回一個奇數
def getOddNumber(k, getEvenNumber):
    k=k+1
    print("k:",k)
    print("結果返回給getOddNumber")
    return 1 + getEvenNumber(k)
    
#起始函數,這裏是程序的主函數
def main():    
    print("調用main()...")
    k = 1
    #當需要生成一個2k+1形式的奇數時
    i = getOddNumber(k, double)
    print("i:",i)
    #當需要一個4k+1形式的奇數時
    i = getOddNumber(k, quadruple)
    print("i:",i)
    #當需要一個8k+1形式的奇數時
    i = getOddNumber(k, lambda x: x * 8)
    print("i:",i)
    
if __name__ == "__main__":
    print("程序入口...")
    main()

even.py

#回調函數1
#生成一個2k形式的偶數
def double(x):
	print("double()被調用")
	return x * 2
#回調函數2
#生成一個4k形式的偶數
def quadruple(x):
	print("quadruple()被調用")
	return x * 4

res1
res2