ฟังก์ชัน Callback ใน Python
ใน Python มีความสามารถในการส่งฟังก์ชัน เข้าไปในพารามิเตอร์ของฟังก์ชันอื่นได้ ฟังก์ชันที่ส่งเข้าไป จะถูกส่งเหมือนตัวแปร (ไม่มีวงเล็บ) และเรียกว่า callback ฟังก์ชัน callback เหล่านี้จะถูกดำเนินการ ภายในเนื้อหาของฟังก์ชันหลัก
สมมติว่าเรามีฟังก์ชัน test,
ซึ่งรับพารามิเตอร์เป็นตัวเลขและ
ฟังก์ชัน:
def test(num, func):
pass
ตอนนี้เรามาสร้างฟังก์ชัน func
ซึ่งจะยกกำลังตัวเลขด้วยเลขยกกำลังสอง:
def func(num):
return num ** 2
ตอนนี้กลับไปที่ test และใน
เนื้อหาของมันเพิ่มโค้ด เพื่อให้ฟังก์ชัน callback
ที่ส่งผ่านพารามิเตอร์ รับพารามิเตอร์เป็นตัวเลขด้วย
ผลลัพธ์สุดท้ายจะได้ว่า
ผลลัพธ์ของ test คือการทำงานของอีก
ฟังก์ชันหนึ่ง โดยที่ตัวเลขสำหรับฟังก์ชันนั้นจะนำมาจาก
พารามิเตอร์แรกของ test:
def test(num, func):
print(func(num))
ต่อมาเรียกใช้ฟังก์ชัน test และ
ส่งพารามิเตอร์แรกเป็น 3 และ
พารามิเตอร์ที่สองคือ func:
test(3, func) # จะแสดง 9
ผลลัพธ์ของการดำเนินการโค้ดต่อไปนี้จะเป็นอย่างไร:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'user name is ' + name
get_Info('john', func)