В процессе использования Python, особенно для новичков, часто возникает необходимость использования подсказок типов для улучшения читаемости и поддержки кода. Однако, когда дело доходит до указания типа функции, могут возникнуть сложности. В модуле typing нет типа Function, а в соответствующем Python Enhancement Proposal (PEP), PEP 483, информации по этой теме не находится.
Рассмотрим типичную задачу. Предположим, есть функция, которая принимает другую функцию в качестве аргумента:
def apply_func(func, x):
return func(x)
В этом случае может возникнуть необходимость указать, что func должен быть функцией. В Python для этого можно использовать подсказки типов.
Тип Callable
Для указания типа функции в подсказках типов в Python используется тип Callable из модуля typing. Этот тип принимает два параметра: список типов аргументов функции и тип возвращаемого значения.
from typing import Callable
def apply_func(func: Callable[[int], float], x: int) -> float:
return func(x)
В этом примере func ожидается быть функцией, которая принимает один аргумент типа int и возвращает значение типа float.
Если функция принимает несколько аргументов, их типы перечисляются в списке. Если функция не возвращает значение (возвращает None), вторым параметром Callable указывается None.
from typing import Callable, Any, None
def apply_func(func: Callable[[int, Any], None], x: int, y: Any) -> None:
return func(x, y)
В этом примере func ожидается быть функцией, которая принимает два аргумента (один типа int и один любого типа) и не возвращает значение.
Таким образом, с помощью типа Callable из модуля typing можно указывать тип функции в подсказках типов в Python.
Перейти в телеграм, чтобы получить результаты теста





Забрать
Добавить комментарий