Python Callback Function 回呼函式

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 Function
def handle():
	print(100)

test(handle) # 将 handle 作为 Callback Function 传进 test 函式里面

Callback Function 的参数

参数是在呼叫的时候传进去

Callback Function 是在其他的函式里被呼叫的

如果希望将参数传进 Callback Function 那就要在呼叫 Callback Function 的函式里设定好参数

def test(arg):
	arg(50) # 将 50 作为参数传进 Callback Function
def handle(data):
	print(data)

test(handle)

Callback Function 的应用

Callback Function 跟一般的函式不同的地方有两点

  1. Callback Function 是藉由函式的参数传进别人的函式,也就是我们在传入Callback Function 时才决定要传什麽 Callback Function 进去
  2. Callback Function 呼叫的时机是在其他函式里面决定的

Callback Function 提供了要传入的函式的弹性,所以我们可以传不同的函式进去看看

def add(n1,n2,cb):
	cb(n1+n2) # 呼叫函式 handle1 ,并将 n1+n2 的结果作为参数传进 Callback Function
def 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) # 结果是 7
add(5,6,handle2) # Result of Add is 11

<<:  [Day21]ISO 27001 附录 A.9 存取控制

>>:  Day 23:最小生成树(MST)

元件类别库魔术

今天要来介绍如何将自己撰写的元件包成元件类别库,并提供给 Blazor Server 与 Blazo...

Day18 - this&Object Prototypes Ch3 Objects - Iteration 开头

var myArr = ['燃面', '生菜', '花椒']; myArr.a = '雉鸡'; //...

[经典回顾]预设密码事件纪录

劳动力发展署新闻稿   劳动部劳动力发展署对於民间公司利用该署「台湾就业通」网站为便利求职求才媒合所...

Day6-Go叙述

前言 Go 语言的叙述,与大部分程序语言用法差不多,所以对学过程序语言的朋友,不会太需要花时间理解,...

#13 Automation

自动化 (Automation) 指的是写出一个程序,让原本需要人工手动执行的多个步骤变成全部都由程...