![](/img/trans.png)
[英]Function with generic comprehension return type depending on input argument?
[英]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]
等(请注意,它不仅限于原始类型,如int
、 str
、 list
等,还适用于特定类的对象等等)。
是否可以指定具体的动态返回类型(而不是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.