使用 Python 3 的函数注释,可以指定包含在同类列表(或其他集合)中的项目类型,以便在 PyCharm 和其他 IDE 中进行类型提示?
一个 int 列表的伪 python 代码示例:
def my_func(l:list<int>):
pass
我知道可以使用 Docstring …
def my_func(l):
"""
:type l: list[int]
"""
pass
…但如果可能的话,我更喜欢注释样式。
原文由 Eric W. 发布,翻译遵循 CC BY-SA 4.0 许可协议
回答我自己的问题; TLDR 的答案是No Yes 。
更新 2
2015 年 9 月,Python 3.5 发布,支持 Type Hints 并包含一个 新的 typing 模块。这允许指定集合中包含的类型。截至 2015 年 11 月,JetBrains PyCharm 5.0 完全支持 Python 3.5 以包含类型提示,如下图所示。
更新 1
截至 2015 年 5 月, PEP0484(Type Hints) 已被正式接受。实施草案也可以在 github 的 ambv/typehinting 下找到。
原始答案
截至 2014 年 8 月,我已经确认无法使用 Python 3 类型注释来指定集合中的类型(例如:字符串列表)。
使用格式化的文档字符串(如 reStructuredText 或 Sphinx)是可行的替代方案,并受到各种 IDE 的支持。
Guido 似乎也在考虑本着 mypy 的精神扩展类型注释的想法: http ://mail.python.org/pipermail/python-ideas/2014-August/028618.html