Check

Конфигурация через dataclass

Python Senior Яндекс 01.01.2025
Реализуйте dataclass `AppConfig`, который: 1. Имеет поля `host: str = "localhost"`, `port: int = 8000`, `debug: bool = False`. 2. Имеет метод `from_env()`, который создаёт инстанс, читая переменные окружения `APP_HOST`, `APP_PORT`, `APP_DEBUG`. 3. Корректно конвертирует типы (port → int, debug → bool: `"1"/"true"` → True, иначе False).
Ответы
Решение 1
```python import os from dataclasses import dataclass @dataclass class AppConfig: host: str = "localhost" port: int = 8000 debug: bool = False @classmethod def from_env(cls) -> "AppConfig": host = os.getenv("APP_HOST", cls.host) port_str = os.getenv("APP_PORT") debug_str = os.getenv("APP_DEBUG") port = int(port_str) if port_str is not None else cls.port if debug_str is None: debug = cls.debug else: debug = debug_str.lower() in {"1", "true", "yes", "on"} return cls(host=host, port=port, debug=debug) ```