Обычный способ использования TypedDict будет:
Код: Выделить всё
class Config(TypedDict):
a: str
b: int
def inference(name, **config: Unpack[Config]):
c = config['a']+str(config["b"])
config: Config = {"a": "1", "b": 2}
inference("example", **config) # or I could get argument hinting for each one from Config
Код: Выделить всё
def inference(name, **?: Unpack[Config]):
c = a+str(b)
Код: Выделить всё
def inference(name, a: str, b: int):
c = a + str(b)
Код: Выделить всё
verbose_name.another_verbose_name
В настоящее время мой обходной путь – явное определение аргументов в подписи вывода и по-прежнему вызов этого с помощью вывода (name, **config) . Я по-прежнему предпочитаю этот подход больше, чем Dataclass, так как я могу пропустить asdict(dataclass_config), делая это, что кажется совершенно ненужным, особенно при загрузке конфигурации из yaml или аналогичного...
Может быть, мой Подход неправильный и не соответствует лучшим практикам... Также был бы рад вашему мнению по этому поводу. Я только начинаю использовать более сложные темы Python...
Я могу себе представить, что добавление этой функциональности через PEP потребует большего, чем просто ввод текста, поэтому я хотел бы знать, есть ли какие-то общие установленное решение.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -arguments