我正在看这样的代码:
class DeckManager:
decks: Dict[str, Any]
def __init__(self, col: a) -> None:
self.decks = {}
甲板:Dict[str, Any] 指定类型别名是否正确?如果是这样,那么在代码后面使用:self.decks 是否有意义。这不令人困惑吗?
我正在看这样的代码:
class DeckManager:
decks: Dict[str, Any]
def __init__(self, col: a) -> None:
self.decks = {}
甲板:Dict[str, Any] 指定类型别名是否正确?如果是这样,那么在代码后面使用:self.decks 是否有意义。这不令人困惑吗?
不,不是decks
类型别名。它是一种类型注释。根据PEP-484:
类型别名由简单的变量赋值定义。
或根据typing
文档:
通过将类型分配给别名来定义类型别名。
因此,将任何可能是有效类型注释的内容分配给变量都是类型别名:
decks = Dict[str, Any]
这种方式decks
将是一个类型别名。
但是当您使用冒号时,您是在注释该变量,而不是创建类型别名:
decks: Dict[str, Any]
根据 Python 的类型注释约定,您只需将实例的decks
属性注释为具有 type 。DeckManager
Dict[str, Any]