Форум сайта python.su
0
Просьба не смеяться - только учусь.
Задача стоит такая. Имеется класс InfoMessage с набором полей. В нем же имеется заготовка информационного сообщения с ключами - наименованиями полей.
Необходимо, используя asdict модуля dataclasses, создать словарь, содержащий поля и значения экземпляра класса, распаковать его и с помощью функции get_message вернуть строку информационного сообщения и при этом применить форматирование .format.
Вот собственно:
from dataclasses import asdict, dataclass @dataclass class InfoMessage: var_1: str var_2: float var_3: float var_4: float INFO = ( 'Текст: {var_1}; текст: {var_2:.3f}; ' 'текст: {var_3:.3f}; текст: {var_4:.3f}; ' ) def get_message(self): return self.INFO.format()
Отредактировано esaul1304 (Фев. 12, 2022 17:33:14)
Офлайн
857
esaul1304Этот .format() не работает.
Имеется класс InfoMessage с набором полей. В нем же имеется заготовка информационного сообщения с ключами - наименованиями полей.
>>> class A: ... a = 1 ... b = 2 ... c = 3 ... def f(self): ... return '{a}, {b}, {c}'.format(a=self.a, b=self.b, c=self.c) ... >>> a = A() >>> a.f() '1, 2, 3' >>>
>>> class A: ... a = 1 ... b = 2 ... c = 3 ... def f(self): ... return f'{self.a}, {self.b}, {self.c}' ... >>> a = A() >>> a.f() '1, 2, 3' >>>
Отредактировано py.user.next (Фев. 13, 2022 02:32:38)
Офлайн