Education 1.1 Help

Задание

Условие

Реализуйте систему для представления структуры файловой системы с использованием паттерна "Компоновщик". В файловой системе есть два типа элементов: файлы и директории. Директории могут содержать как файлы, так и другие директории.

Необходимо создать абстракцию для элементов файловой системы и конкретные реализации для файлов и директорий. Также требуется создать метод для отображения содержимого директории и расчета общего размера файлов в ней.

Требования

  1. Создайте интерфейс FileSystemElement, который определяет методы display() и get_size().

  2. Реализуйте классы File и Directory, которые будут использовать интерфейс FileSystemElement.

  3. В классе Directory реализуйте метод для добавления элементов в директорию.

  4. Реализуйте метод для отображения содержимого директории.

  5. Реализуйте метод для расчета общего размера файлов в директории.

  6. Создайте клиентский код, который демонстрирует использование созданной системы.

Пример использования

# Клиентский код def main(): root = Directory("root") home = Directory("home") user = Directory("user") file1 = File("file1.txt", 100) file2 = File("file2.txt", 200) file3 = File("file3.txt", 300) root.add(home) home.add(user) user.add(file1) user.add(file2) root.add(file3) root.display() print(f"\nTotal size: {root.get_size()} bytes") if __name__ == "__main__": main()
Last modified: 12 June 2024