1. 程式人生 > >Python------回撥函式

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