Ответ
Callable-объект (вызываемый объект) в Python — это любой объект, который можно вызвать с помощью оператора ()
. Если объект можно вызвать, встроенная функция callable()
вернет для него True
.
Эта концепция является ключевой для функционального программирования в Python, позволяя передавать функции и методы как аргументы в другие функции (функции высшего порядка).
Основные типы вызываемых объектов:
- Функции: Созданные через
def
илиlambda
. - Методы: Функции, связанные с экземпляром класса.
- Классы: Вызов класса создает его экземпляр (
MyClass()
). - Экземпляры классов: Если в классе определен магический метод
__call__()
.
Проверка и пример использования:
def regular_function():
print("I am a function")
class MyCallableClass:
def __call__(self, x):
print(f"Instance called with {x}")
# Создаем экземпляр
my_instance = MyCallableClass()
# Проверяем объекты на вызываемость
print(f"Is function callable? {callable(regular_function)}") # True
print(f"Is class callable? {callable(MyCallableClass)}") # True
print(f"Is instance callable? {callable(my_instance)}") # True
print(f"Is integer callable? {callable(123)}") # False
# Вызываем объекты
regular_function() # Вывод: I am a function
my_instance(10) # Вывод: Instance called with 10