我发现了以下python函数定义:
def reverseString(self, s: 'List[str]') -> 'None':
我不太了解“列表[str]” 和->“无” 。
我发现箭头是function annotation,但对于List [str]我找不到任何有用和可理解的东西。
这只是注释吗?还是强制参数 s 的类型必须是字符串数组?
答案 0 :(得分:0)
这只是python类型的提示,您可以在PEP 484
中了解更多信息答案 1 :(得分:0)
只要在调用函数时始终为其提供一个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)
NoneType
有关箭头here的更多信息。
答案 2 :(得分:0)
这是python3类型提示的实例。使用List[str]
表示该函数没有return语句。
List
更有趣:[str]
部分表明它将返回列表类型,而其参数s
表明它是参数化类型。实际上,python列表可以包含任何类型的对象,但是在强类型语言中,列表是同类集合。
使用此提示既可以指示函数的调用者{{1}}仅包含字符串,从而可以避免将要执行的任何操作的任何异常,还可以指示智能IDE(例如PyCharm,VSCode)列表中包含的对象具有用于自动完成指示符的字符串实例方法。
python解释器在术语类型检查中不使用此信息进行任何操作,但是mypy解释器将对您的代码进行类型检查。
有关更多信息,请参见PEP 484和typing模块,它们也是backported到3.5之前的python3和2.7版。