@classmethod
def add_message(cls, msg):
cls.messages[id(msg)] = str(msg)
@classmethod
def remove_message(cls, msg):
cls.messages.pop(id(msg))
@classmethod
def set_like(cls, msg):
cls.messages[id(msg)].fl_like = not msg.fl_like
@classmethod
def show_last_message(cls, n):
print(*tuple(cls.messages.values())[-n::])
@classmethod
def total_messages(cls):
return len(cls.messages)
def __repr__(self):
return f"{self.messages.values()}"
@classmethod
def show(cls):
print(str(cls.messages.values()))
class Message:
def __init__(self, text):
self.text = text
self.fl_like = False
msg = Message("Всем привет!")
vb = Viber()
vb.add_message(msg)
vb.add_message(Message("Это курс по Python ООП."))
vb.add_message(Message("Что вы о нем думаете?"))
vb.show()```
выводит на экран:
<main.Message object at 0x7f99cad5fc10> <main.Message object at 0x7f99cad5f250>
Как вывести словарь на экран?
Что у тебя делает метод show?
выводит словарь
выводит значения из словаря messages Значения в этом словаре довольно очевидно являются экземплярами класса Message Так что он тебе выводит ровно то, что просишь
а что мне делать ?
Выводить словарь, а не значения из него
Обсуждают сегодня