ch17: update from book draft
This commit is contained in:
13
17-it-generator/tree/extra/tree.py
Normal file
13
17-it-generator/tree/extra/tree.py
Normal file
@@ -0,0 +1,13 @@
|
||||
def tree(cls, level=0, last_in_level=True):
|
||||
yield cls.__name__, level, last_in_level
|
||||
subclasses = cls.__subclasses__()
|
||||
if subclasses:
|
||||
last = subclasses[-1]
|
||||
for sub_cls in subclasses:
|
||||
yield from tree(sub_cls, level+1, sub_cls is last)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
for cls_name, level, _ in tree(BaseException):
|
||||
indent = ' ' * 4 * level
|
||||
print(f'{indent}{cls_name}')
|
||||
Reference in New Issue
Block a user