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

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

Сообщение Anonymous »

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

Код: Выделить всё

funcdef: 'def' NAME parameters ['->' test] ':' suite
Необязательный блок «стрелка» отсутствовал в Python 2, и я не смог найти никакой информации о его значении в Python 3. Оказывается, это правильный Python, и он принимается интерпретатором. :

Код: Выделить всё

def f(x) -> 123:
return x
Я думал, что это может быть своего рода синтаксис предусловий, но:
  • Я не могу проверить x здесь, поскольку он все еще не определен,
    Независимо от того, что я ставлю после стрелки (например, 2 < 1), это не влияет на поведение функции.< /li>
Может ли кто-нибудь, знакомый с этим стилем синтаксиса, объяснить это?

Подробнее здесь: https://stackoverflow.com/questions/143 ... efinitions

Вернуться в «Python»