变量和属性

变量使用注释注释:

x = 3  # type: int
x = negate(x)
x = 'a type-checker might catch this error'

Python 3.x >= 3.6

从 Python 3.6 开始,还有用于变量注释的新语法 。上面的代码可能会使用表单

x: int = 3

与注释不同,也可以只向先前未声明的变量添加类型提示,而不为其设置值:

y: int

另外,如果在模块或类级别中使用它们,则可以使用 typing.get_type_hints(class_or_module) 检索类型提示:

class Foo:
    x: int
    y: str = 'abc'

print(typing.get_type_hints(Foo))
# ChainMap({'x': <class 'int'>, 'y': <class 'str'>}, {})

或者,可以使用 __annotations__ 特殊变量或属性访问它们:

x: int
print(__annotations__)
# {'x': <class 'int'>}

class C:
    s: str
print(C.__annotations__)
# {'s': <class 'str'>}