根据下标泛型类的docs,list[str]将返回下标类型为listtypes.GenericAlias.

然而,我找不到一种从实例化的types.GenericAlias中提取这个泛型类的方法.

list[str]中获取泛型类list的最典型的方法是什么?

我能想到的唯一(令人讨厌的)方式是:

def is_list(type_: types.GenericAlias) -> bool:
    return str(type_).startswith("list")

推荐答案

checkout typing.get_origin英镑--这正是你需要的.

get_origin(list[int]) # <class 'list'>

Python-3.x相关问答推荐

类型注释:pathlib. Path vs importlib. resources. abc. Traversable

将数据帧扩展为矩阵索引

Pandas 插入的速度太慢了.对于跟踪代码,什么是更快的替代方案?

我正在try 从 10*3 矩阵中删除随机值并将其变为 10*2 矩阵

从另一个云函数调用带有仅允许内部流量标志的云函数时出现问题

PyTest:尽管明确运行了测试,但是被标记为没有运行测试

两个 y 轴在零处对齐的 plotly barplot

根据另一个数据帧中的位置从主数据帧中提取子序列

多进程:两个进程,一起杀死

Pandas DataFrame:使用 Pandas 将 NaN 值替换为 3 行以上的平均值

pymongo 失败并出现错误未定义

Pandas数据单调行为

具有 2 个输入的 python 3 map/lambda 方法

TypeError:JSON 对象必须是 str,而不是 'dict'

multiprocessing.Queue 中的 ctx 参数

如何获得 BeautifulSoup 标签的所有直接子代?

Python 的 unittest 和 unittest2 模块有什么区别?

为现有项目创建virtualenv

如何删除目录? os.removedirs 和 os.rmdir 是否只用于删除空目录?

字典理解中的操作顺序