تابع callable متغیر(یا یک پارامتر) را چک میکند که آیا خاصیت Call شدن(صدا زدن) مثل یک تابع را دارد یا نه. یعنی آن متغیر قابلیت فراخوانی را دارد یا نه. یعنی اگر مثلا متغیر a را داشته باشیم آیا میتوانیم بصورت a() صدا بزنیم یا نه.
این مثال رو ببینید، بعنوان آرگومان اول به تابع calculator تابع دیگری را داده ایم:
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def calculator(operation, a, b):
if callable(operation):
return operation(a, b)
else:
raise TypeError("Operation must be a callable")
result = calculator(add, 5, 3)
print(result) # Output: 8
result = calculator(subtract, 10, 4)
print(result) # Output: 6
result = calculator("invalid_operation", 2, 3) # Raises TypeError
داخل تابع calculator با یک if چک کرده ایم که آیا آزگومان operation خاصیت callable را دارد یا نه. (توابع callable هستند)