2021-10-18 14:57:06 -03:00

18 lines
441 B
Python

def tree(cls, level=0, last_sibling=True):
yield cls, level, last_sibling
subclasses = cls.__subclasses__()
if subclasses:
last = subclasses[-1]
for sub_cls in subclasses:
yield from tree(sub_cls, level+1, sub_cls is last)
def display(cls):
for cls, level, _ in tree(cls):
indent = ' ' * 4 * level
print(f'{indent}{cls.__name__}')
if __name__ == '__main__':
display(BaseException)