Можно ли передать значения TypedDict как общие значения внутри класса, чтобы включить подсказку типа?
У меня есть словарь, в котором я хотел бы иметь возможность получите аннотации типов из переданного общего TypeDict внутри __getattr__.
В этом примере. Я хочу получить завершение кода и выделение при использовании точечной записи. Возможно ли это?
from typing import TypedDict
class MyDict[T](dict):
def __init__(self, base_dict: T) -> None:
super().__init__()
self._data = base_dict
def __getattr__(self, item):
dots = item.split(".")
data = self._data
for dot in dots:
data = data.get(dot)
if isinstance(data, dict):
return MyDict(data)
if data is None:
raise ValueError("Key not found")
return data
class TestDef(TypedDict):
foo: int
bar: str
baz: dict[str, bool]
data_dict: TestDef = {
"foo": 10,
"bar": "bar",
"baz": {"qux": True}
}
d = MyDict(data_dict)
v1 = d.foo
print(v1)
v2 = d.baz.qux
print(v2)
Подробнее здесь: https://stackoverflow.com/questions/791 ... -typeddict
Введите подсказку для объекта пользовательского словаря как TypedDict. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Введите подсказку для объекта пользовательского словаря как TypedDict.
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Введите подсказку для объекта пользовательского словаря как TypedDict.
Anonymous » » в форуме Python - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-