在Python中使用类型别名并将其声明为变量是一个好主意吗?

3

我正在看这样的代码:

class DeckManager:

   decks: Dict[str, Any]

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

        self.decks = {}

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

1个回答

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

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

或者根据 typing 文档

将类型分配给别名即可定义类型别名。

因此,将任何有效的类型注释分配给变量都可以视为类型别名:
decks = Dict[str, Any]

这种方式会将decks作为类型别名。

但是当你使用冒号时,你是在对这个变量进行注释,而不是创建一个类型别名:

decks: Dict[str, Any]

根据Python的类型注释约定,您仅仅是给DeckManager实例的decks属性添加了类型Dict[str, Any]的注释。

2
似乎decks: TypeAlias = dict[str, Any]现在是类型别名的方式。 - 303

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接