Message195150
ABCs are missing one important introspection feature. They have no API to get registered virtual subclasses. The patch implements a new method get_virtual_subclasses(recurse=False).
ABC.get_virtual_subclasses() returns the direct virtual subclasses of an ABC. ABC.get_virtual_subclasses(recuse=True) also takes subclasses of the ABC as well as subclasses of registered virtual classes into account.
Example:
>>> import numbers
>>> numbers.Number.get_virtual_subclasses()
set()
>>> numbers.Number.get_virtual_subclasses(True)
{<class 'float'>, <class 'bool'>, <class 'int'>, <class 'complex'>}
>>> numbers.Integral.get_virtual_subclasses()
{<class 'int'>}
>>> numbers.Integral.get_virtual_subclasses(True)
{<class 'int'>, <class 'bool'>} |
|
Date |
User |
Action |
Args |
2013-08-14 13:13:13 | christian.heimes | set | recipients:
+ christian.heimes, rhettinger, stutzbach |
2013-08-14 13:13:13 | christian.heimes | set | messageid: <1376485993.36.0.633495217077.issue18737@psf.upfronthosting.co.za> |
2013-08-14 13:13:13 | christian.heimes | link | issue18737 messages |
2013-08-14 13:13:13 | christian.heimes | create | |
|