Callback Function 回呼函式
Callback Function 其实描述的就是一个情境。
Callback Function 就是将函式当参数,传进另一个函式里面。
Callback Function 跟一般的函式没什么不同,不同的是被呼叫执行的时机,一般的函式被呼叫后就会马上执行,Callback Function 通常在达成一些条件之后才会执行。
像下面的函式 handle 我们就叫做 Callback Function
我们将函式 handle 作为参数传进函式 test 里面,所以 handle 就是 Calback Function
def test(arg):print(arg)def handle():print(100)test(handle)
呼叫 Callback Function
Callback Function 回传进其他函式里面,那在其他函式里要如何呼叫 Callback Function 呢?
只要使用参数名呼就可以呼叫 Callback Function
def test(arg):arg() # 呼叫 Callback Functiondef handle():print(100)test(handle) # 将 handle 作为 Callback Function 传进 test 函式里面
Callback Function 的参数
参数是在呼叫的时候传进去
Callback Function 是在其他的函式里被呼叫的
如果希望将参数传进 Callback Function 那就要在呼叫 Callback Function 的函式里设定好参数
def test(arg):arg(50) # 将 50 作为参数传进 Callback Functiondef handle(data):print(data)test(handle)
Callback Function 的应用
Callback Function 跟一般的函式不同的地方有两点
Callback Function 是藉由函式的参数传进别人的函式,也就是我们在传入Callback Function 时才决定要传什么 Callback Function 进去Callback Function 呼叫的时机是在其他函式里面决定的Callback Function 提供了要传入的函式的弹性,所以我们可以传不同的函式进去看看
def add(n1,n2,cb):cb(n1+n2) # 呼叫函式 handle1 ,并将 n1+n2 的结果作为参数传进 Callback Functiondef handle1(result):print("结果是",result)add(3,4,handle1) # 印出 结果是 7
我们可以利用 Callback Function 提供的弹性,传不同函式看看
就可以印出不一样的语言
def add(n1,n2,cb):cb(n1+n2)def handle1(result):print("结果是",result)def handle2(result):print("Result of Add is",result)add(3,4,handle1) # 结果是 7add(5,6,handle2) # Result of Add is 11