Вызываемые объекты
Как известно функции в Python это обычные объекты, которые можно передавать в другие функции, возвращать из других функций и т. п., поэтому для них тоже есть свой тип Callable
:
from typing import Callable
def mysum(a: int, b: int) -> int:
return a + b
def process_operation(operation: Callable[[int, int], int],
a: int, b: int) -> int:
return operation(a, b)
print(process_operation(mysum, 1, 5)) # 6
Здесь для аргумента operation
функции process_operation
проставлен тип Callable[[int, int], int]
. Здесь [int, int]
— это типы аргументов функции operation
, получается, что у этой функции должно быть два аргумента и они оба должны иметь тип int
. Последний int
в определении типа Callable[[int, int], int]
обозначает тип возвращаемого функцией значения.