Hàm callback trong Python
Trong Python có khả năng truyền hàm vào tham số của các hàm khác. Khi đó các hàm được truyền như biến (không có dấu ngoặc tròn) và được gọi là callback. Các hàm callback như vậy sẽ được thực thi trong thân của hàm chính.
Giả sử chúng ta có hàm test,
mà tham số của nó nhận một số và
một hàm:
def test(num, func):
pass
Bây giờ hãy tạo hàm func,
mà sẽ nâng một số lên lũy thừa bình phương:
def func(num):
return num ** 2
Bây giờ hãy quay lại test và trong
thân của nó viết thêm code, để hàm được truyền vào
tham số là callback cũng nhận một số làm tham số.
Kết quả là
kết quả của test sẽ là việc thực thi một hàm khác,
mà số cho hàm đó sẽ được lấy
từ tham số đầu tiên của test:
def test(num, func):
print(func(num))
Tiếp theo, gọi hàm test và
truyền cho nó tham số đầu tiên là 3, còn
tham số thứ hai là func:
test(3, func) # sẽ in ra 9
Kết quả thực hiện đoạn code sau sẽ là gì:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'user name is ' + name
get_Info('john', func)