我的软件支持python自动执行任务(Maya)。当我在这个软件中撤消或重做它打印最后一个命令时,不幸的是,这是函数的内存地址,而不是实际有用的东西。因此,用户会看到输出Undo: <functools.partial object at 0x000002235DEDDF48>
,而不是像Undo: Set Key on something at frame x
似乎没有选项可以让Maya打印出来自其自身功能的有用结果,所以现在我想问一下是否有一些模糊的方法用python将它打包成实例调用本身对软件打印方式有用,同时希望不会干扰功能。我此刻会尝试任何事情!
def testFunc():
pass
test = partial(testFunc)
在<functools.partial object at 0x000002235DEA95E8>
如果有人能想到更准确的标题,请编辑/建议。
答案 0 :(得分:2)
感谢所有人在评论中给我带头,我能够找到答案。子类化partial
和定义__repr__()
是关键。
抓住*args
上的__init__()
并将其存储为self.result
,我们可以在__repr__()
上使用它来返回给*args
的最后一个参数作为Maya在使用Undo / Redo时给出的结果。
class rpartial(partial):
def __init__(self, *args):
self.result = args[-1]
def __repr__(self):
return self.result
rpartial(function, arg1, arg2, undoredo)
undoredo
最后一行的rpartial字符串是Maya在使用Undo / Redo时打印的字符串。