python-3.x - 在泛型类中的泛型方法上绑定(bind) TypeVar

标签 python-3.x generics typing type-variables

出于某种原因,这段代码被认为是一个问题:

from typing import *
T = TypeVar("T", bound="Foo")
S = TypeVar("S")

class Foo(Generic[S]):
    @classmethod
    def func(cls: Type[T]) -> T:
        return cls()

Mypy linter 将我发送到 def func行,说 Unsupported type Type["T"] .如果 Foo 则不会发生这种情况未定义为泛型类。

这是一个错误吗?我做错了什么?

我正在使用 S对于不同的方法,我希望使用 TType[T]稍后在 Foo 的内部子类中.

最佳答案

我相信这是一个 bug in mypy .不幸的是,目前最好的解决方法是只向该行添加一个 # type: ignore 注释,也许连同相关问题的链接。稍后,您可以通过使用 --warn-unused-ignores 标志运行 mypy 来检查该警告是否已修复。

关于python-3.x - 在泛型类中的泛型方法上绑定(bind) TypeVar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51042452/

相关文章:

generics - 如何调用许多不同类型的函数?

python - Python 中类型注释的自引用或前向引用

python - 具有链式比较的 PyCharm 键入警告

python-3.x - Pandas 合并返回空数据框

python-3.x - 删除 Y 文件夹中超过 X 天的每个文件

python - python 的命令行参数

ios - Swift:检查有一个协议(protocol)并像在 Java 中一样使用 getter

python - python装饰器中的变量范围

class - X 类型的参数必须支持接口(interface) Y

python - 您可以在 Python 类型注释中指定方差吗?