Что означает -> в определениях функций Python?

Я недавно заметил что-то интересное, глядя наСпецификация грамматики Python 3.3:

funcdef: 'def' NAME parameters ['->' test] ':' suite

Необязательныйстрела' блок отсутствовал в Python 2, и я не могне могу найти никакой информации относительно его значения в Python 3. Оказывается, это правильный Python, и это 's принимаются переводчиком:

def f(x) -> 123:
    return x

Я думал, что это может быть какой-то синтаксис предварительного условия, но:

Я не могу проверитьx здесь, это все еще не определено,Независимо от того, что я поставил после стрелки (например,2 < 1) это неt влияет на поведение функции.

Может ли кто-нибудь, привыкший к этому синтаксису, объяснить это?

Ответы на вопрос(3)

Ваш ответ на вопрос