Alb*_*o B 1 python python-typing
假设我的类型定义为:
data_type1 = list[str]
data_type2 = set[int]
Run Code Online (Sandbox Code Playgroud)
等等,如何通过分析这两种数据类型来获取主要类型(例如列表或集合)?
我试过:
issubclass(data_type1, list)
issubclass(data_type2, set)
Run Code Online (Sandbox Code Playgroud)
但它返回 False
任何想法?
您可以使用__origin__属性。该属性指向非参数化泛型类。
>>> data_type1 = list[str]
>>> data_type1.__origin__
<class 'list'>
>>> data_type2 = set[int]
>>> data_type2.__origin__
<class 'set'>
>>> data_type2.__origin__ == set
True
Run Code Online (Sandbox Code Playgroud)
或使用moduleget_origin中的 APItyping。
>>> data_type1 = list[str]
>>>
>>> from typing import get_origin
>>> get_origin(data_type1)
<class 'list'>
>>> get_origin(data_type1) == list
True
Run Code Online (Sandbox Code Playgroud)