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

Вы можете использовать аннотации функций в 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 - лучший язык программирования в мире.