最近有人问我这在python中是什么意思
>>> char : str
我不知道。我以前从未见过。我检查了文档,没有类似的东西。一个人的建议是它是静态类型声明,但是在文档中也绝对没有任何内容。
以上,如果我
>>> type(char)
失败
如果我>>> char : str = 'abc'
有效,则type(char)的结果为<class: str>
。但是它不能是静态声明,因为我可以>>> char : str = 4
并且type(char)变成<class: int>
。
所以我来这里是为了收集许多SO霸主的智慧。是什么意思?
答案 0 :(得分:9)
您正在查看注释的变量。提示已移至__annotations__
映射:
>>> char: str
>>> __annotations__
{'char': <class 'str'>}
变量注释在那里支持第三方工具,例如类型检查器;该语法是Python 3.6中的新功能。
请参见PEP 526 -- Syntax for Variable Annotations和What's new in Python 3.6:
就函数注释而言,Python解释器不会将任何特殊含义附加到变量注释,而仅将它们存储在类或模块的
__annotations__
属性中。