3

我正在看这样的代码:

class DeckManager:

   decks: Dict[str, Any]

   def __init__(self, col: a) -> None:

        self.decks = {}

甲板:Dict[str, Any] 指定类型别名是否正确?如果是这样,那么在代码后面使用:self.decks 是否有意义。这不令人困惑吗?

4

1 回答 1

4

不,不是decks类型别名。它是一种类型注释。根据PEP-484

类型别名由简单的变量赋值定义。

或根据typing文档

通过将类型分配给别名来定义类型别名。

因此,将任何可能是有效类型注释的内容分配给变量都是类型别名:

decks = Dict[str, Any]

这种方式decks将是一个类型别名。

但是当您使用冒号时,您是在注释该变量,而不是创建类型别名:

decks: Dict[str, Any]

根据 Python 的类型注释约定,您只需将实例的decks属性注释为具有 type 。DeckManagerDict[str, Any]

于 2020-05-20T03:55:57.063 回答