Functions related to classes¶
-
introspection.get_subclasses(cls, include_abstract=False)¶ Collects all subclasses of the given class.
- Parameters
cls – A base class
include_abstract – Whether abstract base classes should be included
- Returns
A set of all subclasses
-
introspection.get_attributes(obj, include_weakref=False)¶ Returns a dictionary of all of
obj’s attributes. This includes attributes stored in the object’s__dict__as well as in__slots__.- Parameters
obj – The object whose attributes will be returned
include_weakref – Whether the value of the
__weakref__slot should be included in the result
- Returns
A dict of
{attr_name: attr_value}
-
introspection.iter_slots(cls)¶ Iterates over all
__slots__of the given class, yielding(slot_name, slot_descriptor)tuples.If a slot name is used more than once, all of them will be yielded in the order they appear in the class’s MRO.
Note that this function relies on the class-level
__slots__attribute - deleting or altering this attribute in any way may yield incorrect results.- Parameters
cls – The class whose slots to yield
- Returns
An iterator yielding
(slot_name, slot_descriptor)tuples
-
introspection.get_slot_names(cls)¶ Collects all of the given class’s
__slots__, returning a set of slot names.- Parameters
cls – The class whose slots to collect
- Returns
A set containing the names of all slots
-
introspection.get_slot_counts(cls)¶ Collects all of the given class’s
__slots__, returning a dict of the form{slot_name: count}.- Parameters
cls – The class whose slots to collect
- Returns
A
collections.Countercounting the number of occurrences of each slot
-
introspection.get_slots(cls)¶ Collects all of the given class’s
__slots__, returning a dict of the form{slot_name: slot_descriptor}.If a slot name is used more than once, only the descriptor that shadows all other descriptors of the same name is returned.
- Parameters
cls – The class whose slots to collect
- Returns
A dict mapping slot names to descriptors