變數和屬性

變數使用註釋註釋:

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'>}