最近我在查看Python 3.3语法规范时发现了一些有趣的东西:
funcdef: 'def' NAME parameters ['->' test] ':' suite
在 Python 2 中,可选的 'arrow' 块是不存在的,而且我找不到有关其在 Python 3 中含义的任何信息。事实证明,这是正确的 Python 代码,并被解释器接受:
def f(x) -> 123:
return x
我本以为这可能是某种前提条件语法,但:
- 我不能在这里测试
x
,因为它仍未定义, - 无论我在箭头后面放什么(例如
2 < 1
),都不会影响函数的行为。
熟悉这种语法风格的人能否解释一下?