Назад к вопросам
Junior
87
questionbank
Что такое вызываемый объект (callable-объект) в Python?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Python вызываемым объектом (callable) считается любой объект, который можно вызвать подобно функции. Это означает, что к нему можно применить оператор вызова ().
К вызываемым объектам относятся:
- Функции: Определенные с помощью ключевого слова
def. - Методы: Функции, связанные с объектом (инстансом класса).
- Классы: Вызов класса создает новый экземпляр этого класса.
- Объекты с методом
__call__: Если класс определяет метод__call__, экземпляры этого класса становятся вызываемыми.
# Функция
def my_function():
pass
# Метод
class MyClass:
def my_method(self):
pass
# Класс
class AnotherClass:
pass
# Объект с __call__
class CallableObject:
def __call__(self, *args, **kwargs):
pass
# Проверка на вызываемость
import collections.abc
print(isinstance(my_function, collections.abc.Callable))
print(isinstance(MyClass().my_method, collections.abc.Callable))
print(isinstance(AnotherClass, collections.abc.Callable))
print(isinstance(CallableObject(), collections.abc.Callable))
Можно использовать встроенную функцию callable() для проверки, является ли объект вызываемым.
# Проверка с помощью callable()
print(callable(my_function))
print(callable(MyClass().my_method))
print(callable(AnotherClass))
print(callable(CallableObject()))
print(callable(123)) # Не вызываемый объект
Вызываемые объекты широко используются в Python для реализации различных паттернов, таких как декораторы, обратные вызовы (callbacks) и функциональное программирование.