我正在看这样的代码: class DeckManager: decks: Dict[str, Any] def __init__(self, col: a) -> None: self.decks = {} decks: Dict[str, Any] 是否正确指定了类型别名?如果是,那么在代码后面使用 self.decks 有意义吗?这样做会不会令人困惑?
不,decks 不是类型别名,它是类型注释。根据 PEP-484: 类型别名由简单的变量赋值定义。 或者根据 typing 文档: 将类型分配给别名即可定义类型别名。 因此,将任何有效的类型注释分配给变量都可以视为类型别名:decks = Dict[str, Any] 这种方式会将decks作为类型别名。 但是当你使用冒号时,你是在对这个变量进行注释,而不是创建一个类型别名: decks: Dict[str, Any] 根据Python的类型注释约定,您仅仅是给DeckManager实例的decks属性添加了类型Dict[str, Any]的注释。
decks: TypeAlias = dict[str, Any]
现在是类型别名的方式。 - 303