«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как указать типы функций в подсказках типов Python?

Как указать типы функций в подсказках типов Python?

Опубликовано 22 декабря 2024 г.
Просматривать:499

How to Specify Function Types in Python Type Hints?

Указание типа функции в подсказках типа

В Python подсказки типов используются для предоставления дополнительных метаданных об ожидаемых типах переменных и параметрах функции . Однако указание подсказки типа переменной в качестве типа функции может показаться неясным.

Решение

Несмотря на отсутствие «typing.Function» в соответствующем PEP 483, вы можете указать подсказку типа переменной как тип функции, используя «typing.Callable».

Реализация

Синтаксис указания типа функции с использованием «typing.Callable» следующий:

from typing import Callable

def my_function(func: Callable):

Примечание: Callable сам по себе эквивалентен «Callable[..., Any]», что означает, что он принимает любое количество и тип аргументов и возвращает значение любого типа. Если это слишком неограниченно, вы можете дополнительно указать типы списка входных аргументов и тип возвращаемого значения.

Например, для функции, которая принимает два целых числа и возвращает целое число:

def sum(a: int, b: int) -> int: return a b

Соответствующая аннотация типа будет такой:

Callable[[int, int], int]

Общий синтаксис

Общий синтаксис для указания типа функции с использованием «typing.Callable»:

Callable[[ParamType1, ParamType2, ..., ParamTypeN], ReturnType]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3