Python Snippet (二)

// 函数定义时参数数量不定

1 def f(*args,**myvars):
2     print args
3     print myvars.items()
4 f(1,2,name = "Peng",nation = "China")

输出:

1 (1, 2)
2 [('name', 'Peng'), ('nation', 'China')]

一个星号,表示Position Argument,例如 f(1,2,name = "Peng",nation = "China")中的参数1,2; arge是个tuple.

两个星号,表示Key Argument, 比如 name = "Peng",nation = "China" ;  myvars 是个字典。

Position Argument 需在Key Argument前面,比如这样写 def f(**myvars,*args) 这样会报错的。

# returns the file before last
import commands
path  = '/Users/myuser/mydata/'
c='ls -t '+path+'*.bgeo.sc | tail -2 | head -1'
print commands.getstatusoutput(c)[1]
// 定义一个递归函数, 遍历返回节点的所有子节点。
def childrenOfNode(node):
    result = []
    for c in node.children():
        result.append(c)
        result += childrenOfNode(c)
    return result

执行结果

// Houdini 中 在NetworkEditor中鼠标指定位置创建节点
p = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor)
position = p.selectPosition()
new_node = p.pwd().createNode("box")
new_node.setPosition(position)

// 一键key帧 一键归0
添加2个Button参数,一个命名key ,一个zeroAll
 
def keyAll():
    print("hello world")
    parms = hou.pwd().parms()
    
    k = hou.Keyframe()
    k.setSlopeAuto(True)
    k.setInSlopeAuto(True)
    
    for p in parms:
        if p.parmTemplate().type()==hou.parmTemplateType.Float:
            k.setValue(p.eval())
            k.setFrame(hou.intFrame())
            p.setKeyframe(k)
            
            
def zeroAll():
    parms = hou.pwd().parms()
    for p in parms:
        if p.parmTemplate().type()==hou.parmTemplateType.Float:
            p.deleteAllKeyframes()
            p.set(0.0)

 



posted @ 2018-02-25 06:20  鹏_VFX  阅读(374)  评论(0编辑  收藏  举报