2013-07-03 2 views
2

내부 The Foundry 's Nuke에는 Node이라는 클래스가 있습니다. 개체에 str.replace하는 방법?

내가 "안녕" 내 생각이었다

Item1 = str(Item1.replace("Hello There", "Goodbye") 
로 "안녕하세요"교체 할 내가

#Print Item1 
# Result: 

maskChannelMask alpha 
maskChannelInput none 
inject false 
invert_mask false 
message Hello There 

을 얻을 print Item1 경우 나는 "노드"개체가 Item1

라고 말해봐

하지만 분명히 그것을 문자열로 변환합니다.

"노드"객체의 내용을 대체하고 노드 객체로 유지하려면 어떻게해야합니까?

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

그래서 노드 객체에는 'message'라는 필드가 있습니까? –

+0

질문에'dir (Item1)'의 출력을 추가 할 수 있습니까? 모든 사람들이 어떤 종류의 객체 노드인지를 이해하는 데 도움이 될 수 있습니다. –

+1

파이썬 개발자 가이드의 [노드 메타 데이터 챕터] (http://docs.thefoundry.co.uk/nuke/63/pythondevguide/metadata.html)를 읽을 필요가있는 것 같군요. –

답변

0

당신은 메시지를 대체 할 수 있습니다 (그 메시지 가정은 "노드"개체의 필드). 그리고 Refrence 시트에서 값을 편집하는 직접적인 방법이없는 것처럼 보입니다.

그러나 파이썬에서 직접 할 수있는 방법이 있습니까?

+2

나는 [ replace'] (http://docs.python.org/2/library/string.html#string.replace)가 올바른 방법 인이 –

+0

슬프게도 그렇지 않습니다. "AttributeError : 'Node'객체에 'message'속성이 없습니다." – user2339945

+0

"노드"클래스에 대한 추가 정보가 필요합니다. Jason Sperske : 답변을 수정했습니다. –

0

노드 객체가 메시지라는 필드를 가지고 있지 않습니다

0

nuke.Node 인스턴스를 인쇄하면 해당 노드의 문자열 표현이 덤프되며 노브 이름과 현재 값이 표시됩니다.

message 부분이 항목 1에 message, whcih you access by doing라는 노브 [ '메시지'] , you can then call 값() or의 setValue() '를 의미한다.

그래서 값을 수정하려면에서 특히, 문자열 교체, 다음이가 핵무기 파이썬 개발자 가이드에 덮여 setValue

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

와 노드를 변경하려면 어떻게해야합니까, 원래 값을 쿼리 것 "Getting Started" section