代码之家  ›  专栏  ›  技术社区  ›  Abhijit Sarkar

Python类型否决

  •  1
  • Abhijit Sarkar  · 技术社区  · 3 年前

    typing docs 有很多类似于以下的弃用通知:

    class typing.Deque(deque, MutableSequence[T])
    A generic version of collections.deque.
    
    New in version 3.5.4.
    
    New in version 3.6.1.
    
    Deprecated since version 3.9: collections.deque now supports []. See PEP 585 and Generic Alias Type.
    

    Deque (还有其他几个)还有吗?我已经查看了引用,但没有连接点(可能是因为我是一个中级Python用户)。

    3 回复  |  直到 3 年前
        1
  •  2
  •   a_guest    3 年前

    这意味着您应该转换为使用标准库中的内置类型,而不是 typing . 比如说 collections.deque[int] typing.Deque[int] . 同样适用于 list , tuple 等等,所以 tuple[int, str]

        2
  •  3
  •   wim    3 年前

    看到了吗 PEP585 Generic Alias Type .

    typing 模块,这样你就可以 collections.deque 直接在注释类似deque的类型时。

    意思是

    def foo(d: typing.Deque):
        ...
    

    应更改为:

    def foo(d: collections.deque):
        ...
    
        3
  •  -4
  •   Tony Suffolk 66    3 年前

    这意味着您可以使用:

    typing.Deque[Int]
    

    声明包含整数的deque。