Как аннотировать неявные атрибуты класса?

У меня есть класс, который возвращает объект, который, в зависимости от переданных параметров, может иметь разные (любые) атрибуты. Можно ли как-то аннотировать такое поведение класса, то есть указать, что экземпляр этого класса может иметь любые атрибуты?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@kalsc12345
Неизвестный человек.
from typing import Any

class MyClass:
    def __init__(self, param: str):
        self.param = param

    def __getattr__(self, attr: str) -> Any:
        # Здесь можно создать любой атрибут в зависимости от переданного имени
        if attr == 'name':
            return 'John Doe'
        elif attr == 'age':
            return 30
        else:
            raise AttributeError(f"'{type(self).__name__}' object has no attribute '{attr}'")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы