代码之家  ›  专栏  ›  技术社区  ›  addohm

变量声明中冒号的使用[重复]

  •  6
  • addohm  · 技术社区  · 6 年前

    最近有人问我这在python中意味着什么:

    >>> char : str

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

    如果我 >>> type(char) 它失败了

    如果我 >>> char : str = 'abc' 它有效,类型(char)的结果是 <class: str> . 但是它不能是静态声明,因为我可以 >>> char : str = 4 类型(char)变为 <class: int> .

    所以我来这里是为了收集这么多统治者的智慧。那是什么意思?

    1 回复  |  直到 6 年前
        1
  •  9
  •   Martijn Pieters    6 年前

    你在看一个 注释 对于变量。提示移动到 __annotations__ 映射:

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

    变量注释用于支持第三方工具,如类型检查程序;语法在Python3.6中是新的。

    PEP 526 -- Syntax for Variable Annotations What's new in Python 3.6 :

    与函数注释一样,python解释器不向变量注释附加任何特定的含义,只将它们存储在 _注释__ 类或模块的属性。