Сообщить об ошибке.

Тип аннотации Callable() модуля typing в Python.

Типизация функций обратного вызова.

Может использоваться как тип в аннотациях с помощью синтаксиса [].

Синтаксис:

# с версии Python 3.9. импорт из typing устарел
from typing import Callable
# используйте импорт из `collections.abc`
from collections.abc import Callable

Callable[[x], Y]

Параметры:

  • x - список аргументов функции,
  • Y - тип возвращаемого значения.

Описание:

Тип аннотации Callable модуля typing применяется для типизации функций обратного вызова, для объектов, которые их ожидают.

Запись Callable[[int], str] является функцией от (int) -> str. Синтаксис аннотации всегда должен использоваться ровно с двумя значениями: список аргументов и тип возвращаемого значения. Список аргументов должен быть списком типов или многоточием, возвращаемый тип должен быть одного типа.

Не существует синтаксиса для указания необязательных аргументов или ключевых аргументов. Такие типы функций редко используются как типы обратного вызова.

Форма записи как Callable[..., ReturnType] (буквальное многоточие) может использоваться в качестве подсказки для вызываемого объекта, принимающего любое количество аргументов и возвращающего ReturnType. Обычный Callable эквивалентен Callable[..., Any], а такая запись, свою очередь, эквивалентна встроенному абстрактному классу collections.abc.Callable.

Не рекомендуется к применению с Python 3.9: встроенный абстрактный базовый класс collections.abc.Callable теперь поддерживает синтаксис [].

Так же смотрите встроенный в Python "Тип псевдоним".

Пример типизации функций обратного вызова.

from collections.abc import Callable

def feeder(get_next_item: Callable[[], str]) -> None:
    # тело функции

def async_query(on_success: Callable[[int], None],
                on_error: Callable[[int, Exception], None]) -> None:
    # тело функции