Как указать, что функция ожидает функцию в качестве параметра или возвращает функцию через аннотации функций?

Вы можете использовать аннотации функций в python 3, чтобы указать типы параметров и возвращаемое значение, например:

def myfunction(name: str, age: int) -> str: return name + str(age) #usefulfunction 

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

Я понимаю, что вы можете написать любое допустимое выражение для аннотаций, чтобы я мог написать «функцию» как строку, но это лучший / единственный способ сделать это? Нет ничего похожего на встроенные типы int/float/str/list/dict т. Д.? Я знаю о callable , но мне интересно, есть ли что-нибудь еще.

2 Solutions collect form web for “Как указать, что функция ожидает функцию в качестве параметра или возвращает функцию через аннотации функций?”

Для аннотаций нет стиля. Либо используйте callable , types.FunctionType либо строку.

PS: callable был недоступен в Python 3.0 и 3.1

Очень интересно … Я даже не слышал о функциях аннотаций в Python 3. Следующий код интерпретатора предполагает, что вы можете использовать function вместо str и int . Только мои два цента.

 >>> a = lambda x: x*2 >>> type(a) <class 'function'> 
  • Как удалить дубликаты в списке python
  • Как изящно чередовать два списка неравномерной длины в python?
  • Почему идентификатор класса Python не уникален при вызове быстро?
  • Инициализация 2D-массива в Python
  • Windows не может найти файл на subprocess.call ()
  • почему «any ()» работает медленнее, чем использование циклов?
  • Как вычесть значения из двух разных таблиц sqlite3 в python
  • Достаточно простое расширение строк в Python?
  • Python - лучший язык программирования в мире.