代码之家  ›  专栏  ›  技术社区  ›  Bharel

泛型类中泛型方法的绑定typevar

  •  1
  • Bharel  · 技术社区  · 6 年前

    出于某种原因,这段代码会成为一个问题:

    from typing import *
    T = TypeVar("T", bound="Foo")
    S = TypeVar("S")
    
    class Foo(Generic[S]):
        @classmethod
        def func(cls: Type[T]) -> T:
            return cls()
    

    我的皮林特把我送到 def func 行,说 Unsupported type Type["T"] 是的。如果 Foo 未定义为泛型类。

    这是虫子吗?我做错什么了?

    我在用 S 对于不同的方法,我希望使用 T Type[T] 稍后在内部子类中 是的。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Michael0x2a    6 年前

    我相信这是一个 bug in mypy 是的。不幸的是,目前最好的解决方法是添加 # type: ignore 对这条线的注释,也许还有相关问题的链接。稍后,您可以使用 --warn-unused-ignores 旗帜。