Python3 函数定义、箭头和冒号
Python3 function definition, arrow and colon
我找到了以下 python 函数定义:
def reverseString(self, s: 'List[str]') -> 'None':
我不太明白'List[str]'和->'None'。
我发现箭头是 但我找不到任何对 List[str] 有用且易于理解的东西。
它只是一个注释吗?还是强制参数 s 的类型必须是字符串数组?
这只是 python 类型提示,您可以在 PEP 484
中了解更多信息
只要函数在调用时始终提供 s
值,列表 [str] 就不会真正发挥作用。我用 s: 'something different than list[str]'
尝试了这个功能,它的工作原理是一样的。
关于箭头问题,试试看:
def reverseString(self, s: 'List[str]') -> 'None':
pass
致电:
output=reverseString('exampleinput1','exampleinput2')
然后检查输出:
print(c)
None
type(output)
NoneType
有关箭头的更多信息 here。
这是 python3 类型提示的一个实例。使用 -> 'None'
表示该函数没有 return 语句。
List[str]
更有趣:List
部分表明它将 return 一个列表类型,它的参数 [str]
表明它是一个参数化类型。实际上,python 列表可以包含任何类型的对象,但在强类型语言中,列表是同类集合。
使用这个提示既向函数的调用者表明 s
必须只包含字符串,从而避免执行任何操作的任何异常,它也向智能 IDE (例如 PyCharm、VSCode)列表中包含的对象具有用于自动完成指示符的字符串实例方法。
python 解释器不会在类型检查方面对这些信息做任何事情,但是 mypy 解释器会对您的代码进行类型检查。
有关详细信息,请参阅 PEP 484 and the typing module, which has also been backported 到 pre-3.5 python3 和 2.7。
我找到了以下 python 函数定义:
def reverseString(self, s: 'List[str]') -> 'None':
我不太明白'List[str]'和->'None'。
我发现箭头是
它只是一个注释吗?还是强制参数 s 的类型必须是字符串数组?
这只是 python 类型提示,您可以在 PEP 484
中了解更多信息只要函数在调用时始终提供 s
值,列表 [str] 就不会真正发挥作用。我用 s: 'something different than list[str]'
尝试了这个功能,它的工作原理是一样的。
关于箭头问题,试试看:
def reverseString(self, s: 'List[str]') -> 'None':
pass
致电:
output=reverseString('exampleinput1','exampleinput2')
然后检查输出:
print(c)
None
type(output)
NoneType
有关箭头的更多信息 here。
这是 python3 类型提示的一个实例。使用 -> 'None'
表示该函数没有 return 语句。
List[str]
更有趣:List
部分表明它将 return 一个列表类型,它的参数 [str]
表明它是一个参数化类型。实际上,python 列表可以包含任何类型的对象,但在强类型语言中,列表是同类集合。
使用这个提示既向函数的调用者表明 s
必须只包含字符串,从而避免执行任何操作的任何异常,它也向智能 IDE (例如 PyCharm、VSCode)列表中包含的对象具有用于自动完成指示符的字符串实例方法。
python 解释器不会在类型检查方面对这些信息做任何事情,但是 mypy 解释器会对您的代码进行类型检查。
有关详细信息,请参阅 PEP 484 and the typing module, which has also been backported 到 pre-3.5 python3 和 2.7。