任意python类的撤消/重做功能

undoredo的Python项目详细描述


undo redo
--


任意python类的undo/redo功能


支持python 3可能在python 2中工作。

>;作者:ross anderson([rosshamish](https://github.com/rosshamish)作者:ross anderson([rosshamish](https://github.com/rosshamish)


`
` `
` `
` `
`
pip instainstall undo redo

/>
/>任何类都可以通过以下操作获得撤销/重做功能:

>
br/>/>-保留undomanager的一个实例
-使用@undotabable的undoable方法注释un是的decorator
-实现do()、undo()和redo()方法,如以下示例所示
-实现copy()和restore(obj)方法
-其中copy()返回对象的副本(可能是深层副本)
-其中restore(obj)将调用对象还原到传递对象的状态undoredo

类计数器(对象):
def\uu init(self,value=0):
self.undo\u mgr=undoredo.UndoManager()
self.value=value

@undoredo.undoable
def increment(self):
self.value+=1

@undoredo.undoable
def decrement(self):
self.value-=1


def do(self,command):
return self.undo_mgr.do(command)

def undo(self):
return self.undo_mgr.undo()


def redo(self):
return self.undo_mgr.redo()

def copy(self):
return counter(self.value)


def restore(self,计数器:
self.value=counter.value

c=counter(0)0
c.increment()1
c.increment()2
c.undo()1
c.redo()2
````

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Spring启动测试中的java MockBean注释导致NonuniqueBeandDefinitionException   java Spring Hateoas调试模板不能为null   递归培根游戏Java程序?   java在Android中保存少量数据(对象)的最简单方法是什么?   异常处理Java中finally块的要点是什么?   是java。util。货币真的是工厂方法模式吗?   java如何输入字符以停止循环   java如何对流的某些部分执行缩减操作   java new Gson()。单例类的toJson(object)返回null   java Itext泰米尔字体显示不正确   java运行时。getRuntime()。gpg命令不起作用的exec()   java如何在preparedstatemenet中将字符连接到SQL字符串   java将同一实体的多个表示形式与lazyload合并时出错   JavaSpring、Hibernate和JPA:在entitymanager上调用persist似乎并没有提交到数据库   java osgi r6服务。组成部分注释属性列表