Недавно я заметил кое-что интересное, просматривая спецификацию грамматики Python 3.3:
Код: Выделить всё
funcdef: 'def' NAME parameters ['->' test] ':' suite
Необязательный блок «стрелка» отсутствовал в Python 2, и я не смог найти никакой информации о его значении в Python 3. Оказывается, это правильный Python, и он принимается интерпретатором. :
Я думал, что это может быть своего рода синтаксис предусловий, но:
- Я не могу проверить x здесь, поскольку он все еще не определен,
Независимо от того, что я ставлю после стрелки (например, 2 < 1), это не влияет на поведение функции.< /li>
Может ли кто-нибудь, знакомый с этим стилем синтаксиса, объяснить это?
Подробнее здесь:
https://stackoverflow.com/questions/143 ... efinitions