【发布时间】:2019-01-29 03:47:05
【问题描述】:
例如,我有一段代码如下:
from typing import Type, TypeVar, cast
class SuperClass:
pass
T = TypeVar('T', bound=SuperClass)
def cast_to(obj: SuperClass, cast_to: Type[T] = SuperClass) -> T:
return cast(cast_to, obj)
我把它保存在type_check.py。如果我在上面运行 mypy,我会收到以下错误消息:
type_check.py:10: error: Incompatible default for argument "cast_to" (default has type "Type[SuperClass]", argument has type "Type[T]")
type_check.py:11: error: Invalid type "cast_to"
根据我对TypeVar中的bound的理解,只要一个T是SuperClass的子类,应该没问题。但是为什么 mypy 在这里抛出错误呢?谢谢!
【问题讨论】:
标签: python mypy python-typing