libb.ultimate_type
- ultimate_type(typeobj)[source]
Find the ultimate non-object base class in an inheritance hierarchy.
Traverses the inheritance chain to find the most fundamental base class that isn’t ‘object’ itself. Useful for identifying the core type of subclassed objects.
- Parameters:
typeobj (
object|type|None) – An object, type, or None to analyze.- Returns:
The ultimate base type (excluding object).
- Return type:
Finding Base Types:
>>> import datetime >>> class DateFoo(datetime.date): ... pass >>> class DateBar(DateFoo): ... pass >>> d0 = datetime.date(2000, 1, 1) >>> d1 = DateFoo(2000, 1, 1) >>> d2 = DateBar(2000, 1, 1) >>> ultimate_type(d0) <class 'datetime.date'> >>> ultimate_type(d1) <class 'datetime.date'> >>> ultimate_type(d1) <class 'datetime.date'> >>> ultimate_type(d1.__class__) <class 'datetime.date'> >>> ultimate_type(d2.__class__) <class 'datetime.date'>
Special Cases:
>>> ultimate_type(None) <class 'NoneType'> >>> ultimate_type(object) <class 'object'>