Как я могу дать подсказки типа при разрушении моего классаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу дать подсказки типа при разрушении моего класса

Сообщение Anonymous »

Я хотел бы создать класс, который выглядит как ConfigAndPath :

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

import pathlib
from typing import TypeVar, Generic
from dataclasses import dataclass, astuple

class ConfigBase:
pass
T = TypeVar("T", bound=ConfigBase)

@dataclass
class ConfigAndPath(Generic[T]):
path: pathlib.Path
config: T
У меня часто есть список этих конфигураций , и поэтому хотел бы разрушить его в списках, подобных следующим:

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

l: list[ConfigAndPath[MyConfig]] = ...
filenames = [_path.name for _path, _my_config in l]
Итак, я добавил __iter __ в мой класс:

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

# In ConfigAndPath
def __iter__(self):
return iter(astuple(self))
Однако я не уверен, как сделать так, чтобы мой Typechecker (пирайт) понял, что _path является pathlib.path и _my_config - myConfig . Это работает с именом именным , однако я не могу использовать Generics с именованным из -за того, что он не позволяет множественное наследование. Можно ли указать, что я хочу?

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

# In ConfigAndPath
def as_tuple(self) -> Tuple[pathlib.Path, T]:
return self.path, self.config
< /code>
, который затем позволяет мне написать < /p>
filenames2 = [_path.name for _path, _my_config in [i.as_tuple() for i in l]]
, который дает мне подсказку типа, но довольно многословный и дважды ходит по списку.

Подробнее здесь: https://stackoverflow.com/questions/796 ... g-my-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу дать подсказки типа при разрушении моего класса
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как я могу дать подсказки типа при разрушении моего класса
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • C ++ Заказ о разрушении: вызов поля деструктора перед деструктором класса
    Anonymous » » в форуме C++
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Threat_local + std :: Thread Leadlock при разрушении
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Threat_local + std :: Thread Leadlock при разрушении
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

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