出于某种原因,这段代码被认为是一个问题:
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
对于不同的方法,我希望使用 T
和 Type[T]
稍后在 Foo
的内部子类中.
最佳答案
我相信这是一个 bug in mypy .不幸的是,目前最好的解决方法是只向该行添加一个 # type: ignore
注释,也许连同相关问题的链接。稍后,您可以通过使用 --warn-unused-ignores
标志运行 mypy 来检查该警告是否已修复。
关于python-3.x - 在泛型类中的泛型方法上绑定(bind) TypeVar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51042452/