singledispatch and TypeVar return type
未关闭
还没有人认领这个 Issue。
- 主要语言
- Python
- 星标
- 5.1k
- 派生
- 2.1k
- 平均合并
- 1 天 19 小时
- 30 天内合并 PR
- 82
描述
It seems that singledispatch typing is not very accurate. In particular, it does not respect TypeVar used in the return type:
T = TypeVar("T")
@singledispatch
def my_fun(
val: T,
) -> List[T]:
return list(val)
my_fun(5)
my_fun("Ĝis la revido!")
Here the type of the returned value would always be revealed as List[T] instead of different types for different inputs.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先使用 Python 的 singledispatch typing 重现该示例,并检查相关的 typeshed 定义。确定返回类型中的 TypeVar 是如何处理的;当使用不同参数类型的调用能够揭示出相应的专门化 List 返回类型时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- tooling
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 32/100