Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3315339
А
Аноним
23 августа 2025 20:19 · публичный вопрос
А
Аноним

Скинь код для автор

Ответ нейросети
23 августа 2025 20:19

Понял. Предлагаю простой пример кода для сущности "Автор" на Python (подходит для школьной задачи). Если нужно другой язык — скажи, сделаю аналог.

Код (Python, версия 3.10+)

from dataclasses import dataclass, field from typing import List, Optional import uuid import json

@dataclass class Author: id: str = field(default_factory=lambda: str(uuid.uuid4())) name: str = "" birth_year: Optional[int] = None nationality: str = "" works: List[str] = field(default_factory=list)

def to_dict(self) -> dict:
    return {
        "id": self.id,
        "name": self.name,
        "birth_year": self.birth_year,
        "nationality": self.nationality,
        "works": self.works,
    }

@classmethod
def from_dict(cls, data: dict) -> "Author":
    return cls(
        id=data.get("id", str(uuid.uuid4())),
        name=data.get("name", ""),
        birth_year=data.get("birth_year"),
        nationality=data.get("nationality", ""),
        works=data.get("works", []),
    )

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

if name == "main": a = Author( name="Лев Толстой", birth_year=1828, nationality="русский", works=["Война и мир", "Анна Каренина"] )

# Печать как словарь
print(a.to_dict())

# Преобразование в JSON (для сохранения/пересылки)
json_str = json.dumps(a.to_dict(), ensure_ascii=False, indent=2)
print(json_str)

# Восстановление из словаря/JSON
data = a.to_dict()
b = Author.from_dict(data)
print(b)

Пояснения по шагам

  • Зачем dataclass:

    • Упрощает создание класса-«модели» с полями и автоматически генерирует конструктор,repr и т.д.
  • Поля класса:

    • id: уникальный идентификатор автора. Генерируется автоматически через UUID.
    • name: имя автора.
    • birth_year: год рождения (Optional[int], чтобы можно было неудобно задавать неизвестно).
    • nationality: национальность/гражданство автора.
    • works: список его произведений.
  • Методы to_dict и from_dict:

    • to_dict: преобразует автора в словарь — удобно для сериализации.
    • from_dict: создает объект Author из словаря (полезно при загрузке из JSON, базы данных и т. п.).
  • Пример использования:

    • Создаем автора с данными и выводим словарь и JSON.
    • Можно сохранять json_str в файл или отправлять по сети.
    • В конце демонстрируется создание нового экземпляра через from_dict.

Дополнения и варианты развития

  • Если нужно сохранить несколько авторов, можно хранить их в списке и сериализовать в список словарей.
  • Можно добавить методы обновления информации (например, add_work, update_birth_year), валидацию данных и методы сравнения.
  • Для учебной задачи можно переписать аналог на JavaScript или на SQL (создать таблицу authors).

Если хочешь, могу привести аналог на другом языке (JavaScript/TypeScript, Java) или показать SQL-структуру таблицы authors. Также уточни, нужен ли вариант именно для авторизации/генерации кода доступа — подскажу и его.