Как обрабатывать ввод переменной-члена, которая инициализируется во время __post_init__() класса данных ⇐ Python

Программы на Python
Anonymous
Как обрабатывать ввод переменной-члена, которая инициализируется во время __post_init__() класса данных

Сообщение Anonymous »

Переменная ниже инициализируется как пустая, но во время __post_init__ она заменяется экземпляром клиента Outlook.

Код: Выделить всё

@dataclass
class Config:
"""Outlook configuration"""

mailbox: str
inbox: str
mailbox_obj: Union["Mailbox", None] = None
Однако анализ статического типа правильно сообщает, что mailbox_obj не имеет членов (... не является известным членом «Нет»). Я не хочу охранять все с помощью if mailbox_obj только для того, чтобы удовлетворить анализу типов. Есть ли другой способ использовать поле класса данных или что-то в этом роде?
Проблема исчезла бы, если бы я просто использовал обычный класс, поскольку я могу инициализировать проблемную переменную в init где тип будет выведен по заданному значению, но тогда мне придется написать этот дополнительный шаблон.
Написание этого вопроса напомнило мне о приведенном ниже примере, которое, вероятно, я и ищу. для:

Код: Выделить всё

    mailbox_obj: "Mailbox" = field(init=False)
Это правильный путь?

Подробнее здесь: https://stackoverflow.com/questions/746 ... -post-init

Вернуться в «Python»