如何str.replace对象?

时间:2013-07-03 17:28:48

标签: python python-2.7 nuke

在Foundry的Nuke里面有一个名为Node的课程。

假设我有一个名为Item1

的“节点”对象

如果我print Item1

#Print Item1
# Result:

maskChannelMask alpha
maskChannelInput none
inject false
invert_mask false
message Hello There

我想用“再见”取代“Hello There” 我猜是

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

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

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

但是在python中没有直接的方法吗?

答案 2 :(得分:0)

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

message部分是指一个名为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开发指南中对此进行了介绍,特别是在"Getting Started" section