Класс данных Python3 с **kwargs (звездочкой)Python

Программы на Python
Anonymous
Класс данных Python3 с **kwargs (звездочкой)

Сообщение Anonymous »


В настоящее время я использую DTO (объект передачи данных) вот так.

класс Test1: def __init__(self, user_id: int = Нет, тело: str = Нет): self.user_id = user_id self.body = тело Пример кода очень мал, но когда масштаб объекта увеличивается, мне приходится определять каждую переменную.

Покопавшись, обнаружил, что Python 3.7 поддерживает dataclass

Ниже приведен код класса данных, используемый DTO.

из классов данных импортировать класс данных @dataclass класс Тест2: user_id: интервал тело: ул. В этом случае, как я могу разрешить передачу большего количества аргументов, которые не определены в классе Test2?

Если бы я использовал Test1, это было бы легко. Просто добавьте **kwargs(asterisk) в __init__

класс Test1: def __init__(self, user_id: int = Нет, тело: ул = Нет, **кварг): self.user_id = user_id self.body = тело Но, используя класс данных, не удалось найти способ его реализовать.

Есть ли здесь какое-нибудь решение?

Спасибо.

ИЗМЕНИТЬ

класс Test1: def __init__(self, user_id: str = Нет, тело: str = Нет): self.user_id = user_id self.body = тело если __name__ == '__main__': temp = {'user_id': 'скрыть', 'body': 'тест тела'} t1 = Тест1(**температура) печать(t1.__dict__) Результат: {'user_id': 'hide', 'body': 'body test'

Как вы знаете, я хочу вставить данные со словарным типом -> **temp

Причина использования звездочки в классе данных та же.

Мне нужно передать словарный тип в класс init.

Есть идеи?

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