LLD - Design — Tic-Tac-Toe Game
Identify the bug in this undo implementation of a Command pattern:
class MultiplyCommand:
def __init__(self, value, receiver):
self.value = value
self.receiver = receiver
self.prev = None
def execute(self):
self.prev = self.receiver.total
self.receiver.total *= self.value
def undo(self):
self.receiver.total /= self.value
receiver = type('Receiver', (), {'total': 10})()
cmd = MultiplyCommand(2, receiver)
cmd.execute()
cmd.undo()
print(receiver.total)