在查看Python 3.3语法规范时,我最近发现了一些有趣的东西:
funcdef: 'def' NAME parameters ['->' test] ':' suite
Run Code Online (Sandbox Code Playgroud)
Python 2中没有可选的"箭头"块,我在Python 3中找不到任何有关其含义的信息.事实证明这是正确的Python并且它被解释器接受:
def f(x) -> 123:
return x
Run Code Online (Sandbox Code Playgroud)
我认为这可能是某种先决条件语法,但是:
x在这里测试,它仍未定义,2 < 1),它都不会影响功能行为.任何习惯这种语法的人都可以解释一下吗?
我找到了以下python函数定义:
def reverseString(self, s: 'List[str]') -> 'None':
Run Code Online (Sandbox Code Playgroud)
我不太明白'List[str]'和-> 'None'。
我发现箭头是一个函数注释,但我找不到任何对 List[str] 有用且易于理解的东西。
它只是一个注释吗?还是强制参数s的类型必须是字符串数组?