首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nuke中的Python : StopIteration除外

Nuke中的Python : StopIteration除外
EN

Stack Overflow用户
提问于 2013-03-06 07:44:07
回答 2查看 1.3K关注 0票数 0

基本上,我现在想做的是使用python在Nuke中设置一个脚本,该脚本获取用户选择的节点,并为它们添加随机节点,以实现简单的合成工作流程。然而,我坚持让Nuke将洗牌添加到选定的节点上。它在选定时适用于1个节点,但如果选定多个节点,则仅适用于选定的第一个节点。我问了一个朋友这件事,她说可以试试while循环,代码如下:

代码语言:javascript
复制
while True:
    if n in nuke.selectedNodes():
        name = n.name()
        node = nuke.toNode(name)
        blue.setInput(0,node)
        green.setInput(0,node)
        red.setInput(0,node)
    except StopIteration :
        break

这一切都工作得很好,直到例外部分。我在没有异常的情况下运行了脚本,它冻结了Nuke,这表明它正在无限运行,但我需要它停止。Nuke告诉我except是一个无效的语法。有谁知道我如何解决这个问题,或者为我正在尝试的过程创建一个更好的解决方案?

EN

回答 2

Stack Overflow用户

发布于 2013-03-06 09:32:54

也许你应该考虑你在做什么,而不是仅仅在问题上抛出语法,然后希望它会消失。如果没有try块,except就没有意义,而且您也不会将其赋值给n anywhere。大概你的意思是这样的:

代码语言:javascript
复制
for n in nuke.selectedNodes():
    name = n.name()
    node = nuke.toNode(name)
    blue.setInput(0,node)
    green.setInput(0,node)
    red.setInput(0,node)

如果你使用像这样的迭代器,就不需要捕获StopIteration

票数 1
EN

Stack Overflow用户

发布于 2013-03-06 07:48:06

捕获名称为<exception_name>的异常的正确语法为:

代码语言:javascript
复制
try:
    #code here...
except <exception_name>:
    #code here...

编辑:

它看起来你的代码还有其他问题...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15236316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档