我找到了以下python函数定义:
def reverseString(self, s: 'List[str]') -> 'None':
我不太明白'List[str]'和-> 'None'。
我发现箭头是一个函数注释,但我找不到任何对 List[str] 有用和可以理解的东西。
它只是一个注释吗?还是强制参数s的类型必须是字符串数组?
我找到了以下python函数定义:
def reverseString(self, s: 'List[str]') -> 'None':
我不太明白'List[str]'和-> 'None'。
我发现箭头是一个函数注释,但我找不到任何对 List[str] 有用和可以理解的东西。
它只是一个注释吗?还是强制参数s的类型必须是字符串数组?
这只是 python 类型提示,您可以在PEP 484中了解更多信息
这是 python3 类型提示的一个实例。的使用-> 'None'
表明该函数没有返回语句。
List[str]
更有趣的是:该List
部分表示它将返回一个列表类型,它的参数[str]
表示它是一个参数化类型。在实践中,python 列表可能包含任何类型的对象,但在强类型语言中,列表是同质集合。
使用此提示既向函数的调用者表明s
必须仅包含字符串,从而避免任何将执行的操作的任何异常,也向智能 IDE(例如 PyCharm、VSCode)表明列表中包含的对象具有自动完成指示器的字符串实例方法。
python 解释器在类型检查方面不对这些信息做任何事情,但是mypy解释器将对您的代码进行类型检查。
只要函数s
在被调用时总是提供一个值, list[str] 就不会真正发挥作用。我尝试了该功能,s: 'something different than list[str]'
并且效果相同。
关于箭头问题,试试看:
def reverseString(self, s: 'List[str]') -> 'None':
pass
称呼:
output=reverseString('exampleinput1','exampleinput2')
然后检查输出:
print(c)
没有任何
type(output)
无类型
更多关于箭头的信息在这里。