Skip to content

Базовый Класс для управления данными #1

Description

@ruslan-korneev

Напиши класс, который может следующее:

  • сохранять переданные данные целиком в файл
  • получать целиком данные из файла
  • сохранять по ключу данные (пример, ключ = "ruslan", данные = {...}) P.S. это не относится пока к пользователям конкретно
  • получать по ключу данные (пример, ключ = "ruslan", вернуть {...})
  • обновлять|создавать вложенные данные, пример:

существуют такие данные в файле:

{
  "ruslan": {"age": 21}
}

у тебя есть какой-то метод этого класса, который принимает в себя ключи, по порядку вложенности, пусть метод называется update. а экземпляр класса item

Обновим возраст

item.update("ruslan", "age", value=22)
# данные после вызова метода update:
{
  "ruslan": {"age": 22}
}

Добавим адрес

item.update("ruslan", "address", value="Moscow, Pushkina 17")
# данные после вызова метода update:
{
  "ruslan": {"age": 22, "address": "Moscow, Pushkina 17"}
}

Удалим возраст

item.update("ruslan", "age", value=None)
# данные после вызова метода update:
{
  "ruslan": {"address": "Moscow, Pushkina 17"}
}

Сделаем адрес словарем

item.update("ruslan", "address", value={"city": "Moscow", "street": "Pushkina 17"})
# данные после вызова метода update:
{
  "ruslan": {"address": {"city": "Moscow", "street": "Pushkina 17"}}
}

Обновим улицу

item.update("ruslan", "address", "street", value="Pushkina 18")
# данные после вызова метода update:
{
  "ruslan": {"address": {"city": "Moscow", "street": "Pushkina 18"}}
}

P.S.
пока пускай класс будет называться Base, модуль называться base.py, файл с данными base.json

повторюсь, там может быть что угодно, не только пользователи. главное - корень структуры данных это словарь, а не список

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions