繁体   English   中英

如何在对象上进行替换?

[英]How to str.replace on object?

在Foundry的Nuke内部,有一个名为Node的类。

假设我有一个名为Item1的“节点”对象

如果我print Item1我会得到

#Print Item1
# Result:

maskChannelMask alpha
maskChannelInput none
inject false
invert_mask false
message Hello There

我想用“再见”代替“你好”

Item1 = str(Item1.replace("Hello There", "Goodbye")

但这显然会将其转换为字符串。

那么,我将如何替换“节点”对象的内容,并将其保留为节点对象呢?

您可以对消息执行替换(假设消息是“节点”对象的字段):

Item1.message = Item1.message.replace("Hello there", "Goodbye")

节点对象没有名为message的字段。 从参考表看,似乎没有任何直接的方法可以编辑值。

但是没有直接的方法可以在python中做到吗?

打印一个nuke.Node实例将转储该节点的字符串表示形式,其中显示旋钮名称及其当前值。

message部分引用一个称为message, whcih you access by doing的旋钮message, whcih you access by doing Item1 ['message']进行访问, you can then call value() or setValue()`。

因此,要修改值,您需要查询原始值,进行字符串替换,然后使用setValue更新节点

original = Item1['message'].value()
updated = original.replace("Hello There", "Goodbye")
Item1['message'].setValue(original)

这在《 Nuke Python开发指南》中,特别是在“入门”部分中进行了介绍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM