Files
Igor-kr/Final control/4/TASK.md
T
Dmitry Belan ee235ece10
CI Check / lint-and-check (push) Failing after 9s
feat: implement legacy shop management system and add task documentation files
2026-07-18 12:25:32 +03:00

2.1 KiB
Raw Blame History

Задача 4. Работа с JSON и файлами (ООП, JSON, Исключения)

Постановка

  • Конфигурация: Умеет читать и писать настройки в JSON-файл.
  • Приложение: Использует конфигурацию для хранения состояния.

Задание

Класс Config:

  1. Создайте класс Config.
  2. В __init__(self, filename) сохраните имя файла.
  3. Метод load(self) — читает JSON-файл и возвращает словарь. Если файла нет, перехватывает FileNotFoundError и возвращает пустой словарь {}.
  4. Метод save(self, data) — записывает словарь data в JSON-файл с отступами (indent=4) и кодировкой utf-8.
  5. Метод get(self, key, default=None) — загружает данные и возвращает значение по ключу или default.
  6. Метод set(self, key, value) — загружает данные, устанавливает новое значение, сохраняет обратно.

Класс Application:

  1. Создайте класс Application.
  2. В __init__(self, config) сохраните объект Config.
  3. Метод run(self) — выводит приветствие с именем пользователя из конфига (ключ "username"), по умолчанию "Гость".
  4. Метод set_username(self, name) — сохраняет имя в конфиг через config.set.

Тесты:

  1. Создайте Config("settings.json") и Application(config)
  2. Запустите приложение (должно вывести "Гость")
  3. Установите имя через set_username("Иван")
  4. Запустите снова (должно вывести "Иван")
  5. Проверьте, что файл settings.json создался и содержит правильные данные