Trong Python, callable (có thể gọi) đề cập đến bất kỳ đối tượng nào có thể được gọi như một hàm. Nói cách khác, một đối tượng được xem là callable nếu bạn có thể sử dụng dấu ngoặc đơn () sau tên của nó mà không gặp lỗi. Các đối tượng callable trong Python bao gồm:
def hoặc lambda đều là callable.__call__: Bất kỳ đối tượng nào định nghĩa phương thức __call__() cũng có thể được gọi và do đó là callable.Bạn có thể sử dụng hàm callable() để kiểm tra xem một đối tượng có thể gọi được hay không. Hàm này trả về giá trị True nếu đối tượng là callable và False nếu không.
def my_function():
return "Hello, World!"
class MyClass:
def __call__(self):
return "Instance called!"
# Kiểm tra các đối tượng
print(callable(my_function)) # Kết quả: True
print(callable(MyClass)) # Kết quả: True
print(callable(MyClass())) # Kết quả: True
print(callable(123)) # Kết quả: False
def greet(name):
return f"Hello, {name}!"
print(greet("Alice")) # Gọi hàm
class Greeter:
def greet(self, name):
return f"Hello, {name}!"
greeter = Greeter()
print(greeter.greet("Bob")) # Gọi phương thức
class Person:
def __init__(self, name):
self.name = name
# Gọi lớp để tạo một thể hiện
person = Person("Charlie")
print(person.name) # Kết quả: Charlie
__call__class Adder:
def __call__(self, a, b):
return a + b
adder = Adder()
print(adder(3, 5)) # Kết quả: 8
Callable là một khái niệm quan trọng trong Python, giúp bạn hiểu cách các đối tượng tương tác với nhau trong mã của bạn. Bằng cách sử dụng callable, bạn có thể tạo ra các hàm, phương thức và lớp linh hoạt, cho phép bạn viết mã hiệu quả và dễ hiểu. Khả năng kiểm tra xem một đối tượng có thể gọi được hay không giúp bạn xử lý các tình huống khác nhau trong lập trình Python một cách linh hoạt.