The documentation of the typing module explains how to instantiate generic types, but there is no information about how to extract the type arguments from a generic type.
Example:
>>> list_of_ints = typing.List[int]
>>>
>>> # how do we get <class 'int'> out of list_of_ints?
>>> list_of_ints.???
<class 'int'>
Through trial and error I've discovered list_of_ints.__args__, which *seems* to be what I'm looking for, but since it's never mentioned in the docs, it's unclear whether this __args__ attribute is an implementation detail or not.
Please document the official/intended way to extract type arguments from a Generic. |