繁体   English   中英

动态返回类型,由 Python function 中的输入参数定义

[英]Dynamic return type, defined by input argument in Python function

假设我有一个 function,它接受type object,并返回此类型的一些值。 像这样:

>>> from typing import Any, List
>>> def read(T: type) -> Any:  # can we somehow declare T instead of Any?
...     # generating and returning value of type T
...
>>> read(str)
This is a string
>>> read(int)
13
>>> read(List[float])
[1.2, 3.4]

等(请注意,它不仅限于原始类型,如intstrlist等,还适用于特定类的对象等等)。

是否可以指定具体的动态返回类型(而不是Any )? 因此,例如,而不是s: str = read(str)我可以写s = read(str) ,而我的 IDE 将类型提示s作为字符串?

PS 在我的情况下,IDE 是 JetBrains PyCharm,但如果有一个“通用”解决方案会很好。 欢迎任何 Python 版本和模块。

@jonrsharpe评论启发的解决方案:

from typing import Type, TypeVar

T = TypeVar('T')

def read(t: Type[T]) -> T: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM