5

我找到了以下python函数定义:

def reverseString(self, s: 'List[str]') -> 'None':

我不太明白'List[str]'-> 'None'

我发现箭头是一个函数注释,但我找不到任何对 List[str] 有用和可以理解的东西。

它只是一个注释吗?还是强制参数s的类型必须是字符串数组?

4

3 回答 3

2

这只是 python 类型提示,您可以在PEP 484中了解更多信息

于 2019-02-06T10:45:34.437 回答
2

这是 python3 类型提示的一个实例。的使用-> 'None'表明该函数没有返回语句。

List[str]更有趣的是:该List部分表示它将返回一个列表类型,它的参数[str]表示它是一个参数化类型。在实践中,python 列表可能包含任何类型的对象,但在强类型语言中,列表是同质集合。

使用此提示既向函数的调用者表明s必须仅包含字符串,从而避免任何将执行的操作的任何异常,也向智能 IDE(例如 PyCharm、VSCode)表明列表中包含的对象具有自动完成指示器的字符串实例方法。

python 解释器在类型检查方面不对这些信息做任何事情,但是mypy解释器将对您的代码进行类型检查。

有关更多信息,请参阅PEP 484类型模块,该模块也已向后移植到 3.5 之前的 python3 和 2.7。

于 2019-02-06T10:58:30.340 回答
1

只要函数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)

无类型

更多关于箭头的信息在这里

于 2019-02-06T10:48:05.237 回答