关于Python中的泛型,我有一个问题。它是关于方法的返回值的,特别是我正在寻找一种拥有泛型返回类型的方法。
例如,在C#中,我有这样的代码:
public async Task<R> PostAsync<T, R>(string url, T body) {
...
...
...
return JsonConvert.DeserializeObject<R>(responseJson);
}
R是响应类型,T是正文的类型。所以重点是返回一种类型的R,我能用Python语言实现这样的东西吗?对不起,如果这个问题看起来很奇怪,我是一个完全不熟悉Python的人,最初是从C#开始的,目前正在努力进入到Python中。
非常感谢你的帮助!
1条答案
按热度按时间rekjcdws1#
如果您的目标是为了静态类型检查器而拥有适当的类型注解,您可以这样做:
请注意,由于Python不是静态类型的,严格地说,没有真正等同于泛型方法/函数的东西。没有用于指示函数的类型参数的特殊语法。只需将类作为参数传递给方法,即可实现类似的构造。
不过,泛型类型确实存在。您可以通过继承
typing.Generic
基类来创建自己的。但同样,它们在运行时并不重要,主要是为了静态类型检查器的好处而存在。正如评论中提到的,请查看
typing
模块和PEP 484,以了解有关可用于类型提示的工具的更多详细信息。