我想了解一下Python的undo和redo功能如何实现，能否给我一个简单的示例？请注意：在回答中使用markdown格式，且包含一个代码块。
user
当然可以。在Python中实现undo和redo功能，通常可以通过使用栈（stack）数据结构来保存历史状态，下面是一个简单的示例：

```python
class UndoRedo:
    def __init__(self):
        self.undo_stack = []
        self.redo_stack = []

    def add_action(self, action):
        self.undo_stack.append(action)
        self.redo_stack.clear()

    def undo(self):
        if self.undo_stack:
            last_action = self.undo_stack.pop()
            self.redo_stack.append(last_action)
            print(f"Undo: {last_action}")

    def redo(self):
        if self.redo_stack:
            last_action = self.redo_stack.pop()
            self.undo_stack.append(last_action)
            print(f"Redo: {last_action}")

# 示例使用
if __name__ == "__main__":
    ur = UndoRedo()
    actions = ["创建文件", "编辑文件", "保存文件"]
    
    for action in actions:
        ur.add_action(action)
    
    ur.undo()  # Undo: 保存文件
    ur.undo()  # Undo: 编辑文件
    ur.redo()  # Redo: 编辑文件
    ur.redo()  # Redo: 保存文件
```

在这个示例中，`add_action` 方法用于添加新的操作到undo栈中，同时清空redo栈，因为一旦有了新的操作，之前的redo操作将失效。`undo` 方法实现了撤销最近的操作，并将被撤销的操作保存到redo栈中，以便之后可以恢复。`redo` 方法则实现了恢复最近被撤销的操作。
assistant