callable(obj) trả về True nếu obj có thể được gọi như một hàm (có phương thức __call__), ngược lại trả về False.
Đối tượng callable
def func_callable():
x = 3
y = 5
z = x ^ y # XOR bitwise
return z
# func_callable là function object -> callable
print("Function object:", callable(func_callable)) # True
# Gọi hàm
result = func_callable()
print("Kết quả gọi:", result) # 6 (3 ^ 5 = 6)
Kết quả
Function object: True Kết quả gọi: 6
Đối tượng KHÔNG callable
x = 3
y = 5
z = x ^ y # z = 6 (int)
print("Integer:", callable(z)) # False
print("Giá trị z:", z) # 6
Kết quả
Integer: False Giá trị z: 6
Các loại callable phổ biến
- Hàm (
def,lambda) - Class (gọi để tạo instance)
- Instance có định nghĩa
__call__ - Method của class
- Built-in functions (
len,print, ...)
Kết luận
callable() hữu ích khi viết code động (dynamic), kiểm tra trước khi gọi callback, plugin, decorator...