gpt4 book ai didi

Python:需要 functools.partial(function) 的结果被称为其他东西

转载 作者:行者123 更新时间:2023-12-01 04:09:56 26 4
gpt4 key购买 nike

我的软件支持 python 来自动执行任务 (Maya)。当我在这个软件中撤消或重做时,它会打印最后一个命令,不幸的是,对于 Python 来说,这是函数的内存地址,而不是实际有用的东西。因此用户看到输出 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>

如果有人能想到更准确的标题,请编辑/建议。

最佳答案

感谢kindall在评论中给我的引导,我才能找到答案。子类化 partial 并定义 __repr__() 是关键。

通过获取 __init__() 上的 *args 并将其存储为 self.result,我们可以在 __repr__( ) 以返回指定给 *args 的最后一个参数,作为使用撤消/重做时 Maya 给出的结果。

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 将打印的内容。

关于Python:需要 functools.partial(function) 的结果被称为其他东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35095845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com