Назад к вопросам
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) и функциональное программирование.