История изменений
Исправление Virtuos86, (текущая версия) :
Проверку на maxdepth перенести в начало функции, код перед ней на нее не влияет, а идейно будет выглядеть лучше; type(obj).__name__ заменить на obj.__class__.__name__, мне кажется, так будет на 1 миллигвидо питоничнее.
И раз уж ты знаешь про vars, то vars(obj) равносилен obj.__dict__, но прячет несколько андерскоров в коде, всё плюс.
Исходная версия Virtuos86, :
Проверку на maxdepth перенести в начало функции, код перед ней на нее не влияет, а идейно будет выглядеть лучше; type(obj).__name__ заменить на obj.__class__.__name__, мне кажется, так будет на 1 миллигвидо питоничнее.