Что означает -> в определениях функций 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 влияет на поведение функции.Может ли кто-нибудь, привыкший к этому синтаксису, объяснить это?