[英]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.