Создать каталог папок в виде древа, используя рекурсию

Рейтинг: 0Ответов: 0Опубликовано: 04.04.2023

Есть два класса, папка и файл. Аттрибуты(поля) файла: размер и название.

Класс папка(folder) представляет собой древо внутри которого могут быть другие папки и файлы. Аттрибуты(поля) папки: размер, название и сабдрева. При калькуляции размера папки, каждая папка(пустая или нет) имеет размер 1 + размеры файлов внутри нее. Имплементируйте функцию и инициализаторы классов.

def file_ierarchy(input: tuple[str, int | list]) -> Directory:
    """ Используя рекурсию создайте из ввода который показывает иерархию папок в системе в 
    виде древа.
    >>> my_folder = file_ierarcy(((".", [
                ("docs", [("cotnract.pdf", 13), ("excel1.xlsx", 10)]),
                ("images", [("family", [("us.png", 5)])]),
                ("favorite_song.mp3", 14),
                ("empty_file", [])
            ])
        ))
    >>> my_folder.size
    47
    >>> len(my_folder.subtrees)
    4
    >>> isinstance(docs, Folder)
    True
    >>> documents.data_size
    >>> 24
    >>> images.data_size
    >>> 7
    """


class File:
    def __init__(self, name, size):


class Folder:
    def __init__(self, name, size, subtrees: list):

Ответы

Ответов пока нет.