类型提示指定类型的集合

新手上路,请多包涵

使用 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 许可协议

阅读 329
2 个回答

回答我自己的问题; TLDR 的答案是No Yes

更新 2

2015 年 9 月,Python 3.5 发布,支持 Type Hints 并包含一个 新的 typing 模块。这允许指定集合中包含的类型。截至 2015 年 11 月,JetBrains PyCharm 5.0 完全支持 Python 3.5 以包含类型提示,如下图所示。

使用类型提示的 PyCharm 5.0 代码完成

更新 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

原文由 Eric W. 发布,翻译遵循 CC BY-SA 3.0 许可协议

更新:请查看其他答案,这个已经过时了。

原始答案(2015):

现在 Python 3.5 正式发布,有类型提示支持模块 - typing 和相关的 List 通用容器的“类型”。

换句话说,现在您可以:

 from typing import List

def my_func(l: List[int]):
    pass

原文由 alecxe 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题