在变量声明中使用冒号

时间:2018-08-01 17:44:42

标签: python

最近有人问我这在python中是什么意思

>>> char : str

我不知道。我以前从未见过。我检查了文档,没有类似的东西。一个人的建议是它是静态类型声明,但是在文档中也绝对没有任何内容。

以上,如果我 >>> type(char)失败

如果我>>> char : str = 'abc'有效,则type(char)的结果为<class: str>。但是它不能是静态声明,因为我可以>>> char : str = 4并且type(char)变成<class: int>

所以我来这里是为了收集许多SO霸主的智慧。是什么意思?

1 个答案:

答案 0 :(得分:9)

您正在查看注释的变量。提示已移至__annotations__映射:

>>> char: str
>>> __annotations__
{'char': <class 'str'>}

变量注释在那里支持第三方工具,例如类型检查器;该语法是Python 3.6中的新功能。

请参见PEP 526 -- Syntax for Variable AnnotationsWhat's new in Python 3.6

  

就函数注释而言,Python解释器不会将任何特殊含义附加到变量注释,而仅将它们存储在类或模块的__annotations__属性中。